【发布时间】:2013-11-07 18:46:46
【问题描述】:
这里有什么问题?
ajax 调用未达到动作
服务器端:
[HttpPost]
public ActionResult UploadFile(long someID, HttpPostedFileBase myFile)
{
return "hello";
}
客户端html:
<form id="my-form" method="post" action="" enctype="multipart/form-data">
<input type="hidden" name="someID" value="156" />
<input type="file" name="myFile" />
</form>
客户端javascript:
$.ajax({
async: true,
type: 'POST',
url: '/MyController/UploadFile/',
data: new FormData($('#my-form')),
success: function (data) {},
cache: false,
contentType: false,
processData: false
});
在某些浏览器中应该可以通过 ajax 进行这种上传。
我收到此服务器端错误: 参数字典包含不可为空类型“System.Int64”的参数“someID”的空条目(...)
如果我把action改成UploadFile(),不带参数,ajax调用就进入了action,那么我该如何恢复发布的数据呢?
【问题讨论】:
-
这是一个安全问题,另见stackoverflow.com/questions/19267749/…
-
不是安全问题
标签: ajax html asp.net-mvc-4 file-upload