【发布时间】:2019-04-29 05:19:43
【问题描述】:
当我尝试将表单提交到服务器端代码上的操作时遇到问题,如下所示:
[ValidateAntiForgeryToken]
public async Task<ActionResult> DoRegister(UserRegistrationViewModel model)
{
// Some code here
}
该表单还包含 Html.AntiForgeryToken(),因此这不是问题。 jQuery 代码如下所示:
$('form').submit(function (event) {
event.preventDefault();
if ($(this).valid()) {
StartLoading();
var formdata = new FormData($(this).get(0));
$.post("/User/DoRegister",formdata, function (data) {
$(".registerLoader").fadeOut("fast");
if (data.statusCode == 200) {
window.location.href = "/Plans";
}
else if (data.statusCode == 100) {
$("body").html(data.View);
}
});
}
return false;
});
当我尝试提交表单时,我收到以下错误:
jquery: Uncaught TypeError: Illegal invocation
我在这里做错了什么?有人可以帮帮我吗?
【问题讨论】:
-
你能显示 formdata 包含哪些数据吗?
-
@MuhammadSaqlain 确定一下
-
@MuhammadSaqlain 如何读取表单数据的内容?当我做一个 console.log(formdata);我明白了: FormData {} proto: FormData append: ƒ append() delete: ƒ delete() entries: ƒ entries() forEach: ƒ forEach() get: ƒ () getAll: ƒ getAll () 有: ƒ has() 键: ƒ keys() 设置: ƒ () 值: ƒ values() 构造函数: ƒ FormData()
-
有人吗? =)
-
只是一个旁注
$(this).get(0)和this是一样的——你把一个dom 对象变成一个jquery 对象只是为了再次得到这个dom 对象!
标签: javascript jquery asp.net asp.net-mvc asp.net-mvc-4