带文件上传的MVC Ajax表单

时间:2016-04-30 16:52:32

标签: asp.net-mvc file-upload

我只是使用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计数为零。

这是图片enter image description here

  

在jquery中,我可以获取文件和fiddler enter image description here

     

我不知道为什么文件计数在操作方法中为零,以及为什么我的BeginRequest和onfail方法在表单提交后的任何场景中都会触发。我使用$(&#39;#form2&#34;)。submit()

提交

0 个答案:

没有答案