我只是使用AJAX表单在MVC5中提交带有数据和文件的文本框。 这是Ajax表单
<script>
function BeginRequest() {
alert('begining');
}
function submitform() {
var fileinput = $('#file2')[0].files;
if (fileinput.length <= 0)
alert("no file to upload");
var fromdata = new FormData();
fromdata.append('a', fileinput[0]);
debugger;
$('#Form2').submit();
}
function OnFail() {
alert('faiil');
}
</script>
<div id="divresponse">
</div>
@using (Ajax.BeginForm("SubmitFiles", "Home", null,
new AjaxOptions()
{
UpdateTargetId = "divresponse",
InsertionMode = System.Web.Mvc.Ajax.InsertionMode.Replace,
HttpMethod = "POST",
OnBegin = "BeginRequest",
OnFailure = "OnFail()"
}, new { id = "Form2", enctype = "application/x-www-form-urlencoded" }))
{
<input type="file" id="file2" name="file2" />
<input type="text" id="txtName" name="txtName" value="aaa" />
<input type="button" value="Add" onclick="submitform()" />
}
我使用过已经使用过的
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
在布局.cshtml中并进行配置更改
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" /
然而,SubmitFiles actionTime中的Request.FIles计数为零。
我不知道为什么文件计数在操作方法中为零,以及为什么我的BeginRequest和onfail方法在表单提交后的任何场景中都会触发。我使用$(&#39;#form2&#34;)。submit()
提交