[英]request.files returns null when using onsubmit attribute
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)
{
}
尝试这个:
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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.