使用 onsubmit 属性时 request.files 返回 null
Posted
技术标签:
【中文标题】使用 onsubmit 属性时 request.files 返回 null【英文标题】:request.files returns null when using onsubmit attribute 【发布时间】:2021-03-02 22:58:35 【问题描述】:Request.files
在将 onsubmit 属性添加到 BeginForm
后返回 null 并在删除后正常工作。我尝试使用 id 属性相同的问题。
我也尝试从控制器中的集合中添加
查看
@using (html.BeginForm("Create", "Candidate", FormMethod.Post, new onsubmit = "return SubmitForm(this)", enctype = "multipart /form-data" ))
<div class="form-horizontal">
....
<div class="form-group">
@Html.Label("Avatar", new @class = "control-label col-md-2" )
<div class="col-md-10">
<input type="file" name="file" multiple="multiple" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
function SubmitForm(form)
$.validator.unobtrusive.parse(form);
if($(form).valid())
$.ajax(
type : "POST",
url : form.action,
data : $(form).serialize(),
success : function (data)
if(data.success)
Popup.dialog('close');
dataTable.ajax.reload();
$.notify(data.message,
globalPosition :"top center",
className : "success"
)
);
return false;
actionResult Create(model model)
【问题讨论】:
我想你的问题已经在这里得到了回答***.com/questions/166221/… 【参考方案1】:试试这个:
var form = $('form')[0];
var formData = new FormData(form);
function SubmitForm(form)
$.validator.unobtrusive.parse(form);
if($(form).valid())
$.ajax(
type : "POST",
url : "your url",
data : formData ,
contentType: false,
processData: false,
success : function (data)
if(data.success)
Popup.dialog('close');
dataTable.ajax.reload();
$.notify(data.message,
globalPosition :"top center",
className : "success"
)
);
return false;
您还需要在控制器函数中添加 HttpPostedFileBase 参数:
actionResult Create(HttpPostedFileBase Uploadedfile)
//Do stuff here
【讨论】:
以上是关于使用 onsubmit 属性时 request.files 返回 null的主要内容,如果未能解决你的问题,请参考以下文章