我的视图中有一个文件
<form id="upload" enctype="multipart/form-data">
<input type="file" name="fileUpload" id="fileUpload" size="23" />
</form>
Run Code Online (Sandbox Code Playgroud)
和ajax请求
$.ajax({
url: '<%=Url.Action("JsonSave","Survey") %>',
dataType: 'json',
processData: false,
contentType: "multipart/mixed",
data: {
Id: selectedRow.Id,
Value: 'some date was added by the user here :))'
},
cache: false,
success: function (data) {}
});
Run Code Online (Sandbox Code Playgroud)
但Request.Files中没有文件.ajax请求有什么问题?
我想知道如何通过formdata传递datetime值并在控制器中检索它并将其转换为控制器中的DateTime
我试过如下:
var formdata=new FormData();
fromDate = $('.from_date').datepicker('getUTCDate');
toDate = $('.to_date').datepicker('getUTCDate');
formdata.append("start", new Date(fromDate));
formdata.append("end", new Date(toDate));
Run Code Online (Sandbox Code Playgroud)
在$.ajax我正在设定data:formdata
在我的控制器中,我收到如下:
DateTime frmDate = Convert.ToDateTime(Request.Form["start"]).Date;
DateTime toDate = Convert.ToDateTime(Request.Form["end"]).Date;
Run Code Online (Sandbox Code Playgroud)
但是我在这里System.FormatException尝试了一段时间Convert并且当我保持监视时,Request.Form["start"]那么值将是,"Fri Mar 30 2015 05:30:00 GMT+0530 (Indian Standard Time)"但是当从请求中检索时它将其视为字符串.
是否可以通过日期时间类型Request?
我需要将文件上传到服务器并发送GUID值,这两者都是完成操作所需的.
是否可以通过一个$.ajax声明发送两个?
这是我正在使用的上传操作方法的片段
[HttpPost]
public ActionResult Upload()
{
HttpPostedFileBase file = Request.Files[0];
}
Run Code Online (Sandbox Code Playgroud)
这里是我用来将文件发送到服务器的Javascript代码片段
function upload() {
var formData = new FormData();
var totalFiles = document.getElementById("FileUpload").files.length;
for (var i = 0; i < totalFiles; i++) {
var file = document.getElementById("FileUpload").files[i];
formData.append("FileUpload", file);
}
$.ajax({
type: 'post',
url: '/myController/Upload',
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function (response) {
alert('succes!!');
},
error: function (error) {
alert("errror");
}
});
}
Run Code Online (Sandbox Code Playgroud)
这段代码运行良好.该文件按预期上传,但现在我需要发送GUID到同一个控制器(上传),所以我想知道我是否可以在同一个$.ajax语句中发送带有该文件的GUID ?
<% using (Html.BeginForm("DisplayCustomer","Customer",FormMethod.Post))
{ %>
Enter customer id :- <%= Html.TextBox("Id",Model)%> <br />
Enter customer code :- <%= Html.TextBox("CustomerCode",Model) %><br />
Enter customer Amount :- <%= Html.TextBox("Amount",Model) %><br />
<input type="submit" value="Submit customer data" />
<%} %>
Run Code Online (Sandbox Code Playgroud)
使用剃刀
@using (Html.BeginForm("DisplayResult", "DisplayCustomer", FormMethod.Post)) {
@Html.ValidationSummary(true);
@:Enter customer id :- @Html.TextBox("Id",Model)
@:Enter customer code :-@Html.TextBox("Code",Model)
@:Enter customer Amount :-@Html.TextBox("Amount",Model)
<input type="submit" value="Enter the value" />
}
Run Code Online (Sandbox Code Playgroud)
编译器错误消息:CS1973: 'System.Web.Mvc.HtmlHelper'没有名为'TextBox'的适用方法,但似乎有一个名称的扩展方法.无法动态分派扩展方法.考虑转换动态参数或调用扩展方法而不使用扩展方法语法.
@using (Html.BeginForm("DisplayResult", "DisplayCustomer", FormMethod.Post)) {
@Html.ValidationSummary(true);
@:Enter customer id :- <input type="text" name="Id" /> …Run Code Online (Sandbox Code Playgroud) 我试图将带有表单数据的数组发送到带有Ajax请求的操作,但每当我这样做时,我都会收到表单数据和数组为空
$scope.SubmitForm = function () {
var sLangs = $("#supportedLanguages").data("kendoMultiSelect").value();
var formdata = new FormData($('#frmAppSettings').get(0));
alert(formdata.SelectedLanguages);
var data = new FormData(document.getElementById("frmAppSettings"));
$.ajax({
type: "POST",
url: "/AppMenuMaker/AppSettings",
data: JSON.stringify({ AppSettingsView: formdata, SelectedLangs: sLangs }),
processData: false,
contentType: false,
success: function () {
}
});
}`
Run Code Online (Sandbox Code Playgroud)
我的行动如下
[HttpPost]
[Authorize]
public ActionResult AppSettings( ApplicationSettingsViewModel AppSettingsView, int[] SelectedLangs)
{
}
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
您好,我在将数据发布到控制器时遇到问题。现在我下面有一个模型,
public class Media
{
public int Id { get; set; }
public string Category { get; set; }
public string Guid { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public List<int> Portals { get; set; }
public string Lang { get; set; }
public List<Folder> Folders { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后,我将文件和该模型发布到控制器。In AJAX侧面
var formData = new FormData();
var totalFiles = document.getElementById("FileUpload").files.length;
if (totalFiles === 0) {
toastr.warning('Lütfen resim …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 jquery AJAX 帖子在 MVC 核心中发布一个简单的视图模型,但是模型上的 IFormFile 属性似乎为空。
我有以下视图模型:
[Required]
public IFormFile File { get; set; }
[Required]
[Display(Name = "Owner")]
public int DocumentOwner { get; set; }
[Required]
[Display(Name = "Document Type")]
public int DocumentTypeId { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后我在视图底部的脚本中使用 jQuery ajax 帖子:
$("form").submit(function (e) {
e.preventDefault();
var model = $('form').serialize();
$.ajax({
type: "POST",
url: "/Client/AddDocument",
contentType: false,
processData: false,
data: model,
success: function (message) {
alert(message);
},
error: function () {
alert("There was error uploading files!");
}
}); …Run Code Online (Sandbox Code Playgroud) 这个问题是不是重复这个,因为所有的细节都在这个问题充分说明,将是非常适合初学者
我有一个从模型继承的视图。我的字段是表单,我想用JQuery / Ajax将表单(或模型)发布到控制器并将其插入数据库中。我阅读了这篇文章,可以使用Ajax上传图像,但是我无法将整个表格或带有数据的模型发布到控制器。
我的看法 :
@model ajax1.Models.Info
<form method="post" enctype="multipart/form-data">
<div class="form-group">
<label asp-for="FirstName" class="col-lg-2 col-sm-2 control-label "></label>
<div class="col-lg-6">
<input asp-for="FirstName" class="form-control" />
<span asp-validation-for="FirstName"></span>
</div>
</div>
<div class="form-group">
<label asp-for="LastName" class="col-lg-2 col-sm-2 control-label"></label>
<div class="col-lg-6">
<input asp-for="LastName" class="form-control" />
<span asp-validation-for="LastName"></span>
</div>
</div>
<input type="file" id="files" name="files" multiple />
<input type="button" id="upload" value="Upload Selected Files" />
</form>
Run Code Online (Sandbox Code Playgroud)
视图底部的JQuery代码:
@section Scripts{
<script>
$("#upload").click(function (evt) {
var fileupload = $("#files").get(0);
var files = fileupload.files;
var …Run Code Online (Sandbox Code Playgroud) 我有这个提交代码,
$('#form').on('submit',function (e) {
e.preventDefault();
//var file = $("#productImg");
var fileUpload = $("#productImg").get(0);
var files = fileUpload.files;
var form = $("#form");
var formData = new FormData();
formData.append("product", form.serialize());
// Looping over all files and add it to FormData object
for (var i = 0; i < files.length; i++) {
formData.append(files[i].name, files[i]);
}
//formData.append("file", file);
$.ajax({
type: 'POST',
url: baseUrl + 'Controller/Action',
data: formData,
processData: false,
contentType: false,
success: function (data) {
}
});
});
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
public JsonResult AddProduct(ProductModel product) // …Run Code Online (Sandbox Code Playgroud) 我试图在MVC5项目中使用AJAX调用,就像在网上有很多类似的例子,但每次都有错误,例如antiforgerytoken,500等等.我正在寻找一个适当的AJAX调用方法,其控制器操作方法具有所有必要的属性和从View到Controller Action发送模型数据.以下是我使用的方法:
视图:
@using (Html.BeginForm("Insert", "Account", FormMethod.Post, new { id = "frmRegister" }))
{
@Html.AntiForgeryToken()
//code omitted for brevity
}
<script>
AddAntiForgeryToken = function (data) {
data.__RequestVerificationToken = $('#__AjaxAntiForgeryForm input[name=__RequestVerificationToken]').val();
return data;
};
$('form').submit(function (event) {
event.preventDefault();
//var formdata = JSON.stringify(@Model); //NOT WORKING???
var formdata = new FormData($('#frmRegister').get(0));
//var token = $('[name=__RequestVerificationToken]').val(); //I also tried to use this instead of "AddAntiForgeryToken" method but I encounter another error
$.ajax({
type: "POST",
url: "/Account/Insert",
data: AddAntiForgeryToken({ model: formdata }),
//data: { data: …Run Code Online (Sandbox Code Playgroud) 下面是我在提交时将表单返回到jquery函数时的剃刀代码.
@model Slider
@{
Layout = null;
}
@using (Html.BeginForm("AddOrEdit", "Slider", FormMethod.Post, new { enctype = "multipart/form-data" , onsubmit = "return SubmitForm(this)" }))
{
@Html.HiddenFor(m => m.Id)
<div class="form-group" style="height:270px;">
@Html.LabelFor(m => m.ImageFile, new { @class = "blue-text", @style =
"font-size:16px", @id = "" })
<input name="ImageFile" type="file" />
</div>
<div class="form-group">
<input type="submit" value="Submit" class="btn btn-primary" />
<input type="reset" value="Reset" class="btn" />
</div>
}
Run Code Online (Sandbox Code Playgroud)
除非我将其更改为json,否则Jquery函数无法序列化输入文件类型并将其发送到控制器.但如果我将其更改为json,我将无法获得验证
function SubmitForm(form) {
debugger;
$.validator.unobtrusive.parse(form);
debugger;
if ($(form).valid()) {
debugger;
$.ajax({
type: "POST",
url: …Run Code Online (Sandbox Code Playgroud) ajax ×8
asp.net-mvc ×8
jquery ×8
c# ×4
asp.net ×3
javascript ×3
form-data ×2
.net ×1
asp.net-core ×1
controller ×1
datetime ×1
json ×1
razor ×1