前端:
<form id="myForm">
<input id="username" name="username" type="text" value="" />
<input id="sex" name="sex" type="text" value="" />
</form>
<div id="resultDiv"></div>
javascript(使用jQuery和jquery.form):
$("resultDiv").load("/MyControler/MyAction"
, $("#myForm").formSerialize()
, function() {
alert("ok);
}
)
net mvc c#:
public ActionResult MyAction()
{
//只调用了这里
return view();
}
[HttpPost]
public ActionResult MyAction(MyModel newClass)
{
//想调用这里
return view();
}
想用jQuery 的load模拟表单的提交操作,调用mvc 的MyAction(MyModel newClass),但是却调用到了MyAction(),如果把load的第二个参数改为{a:1,b:2}却成功了:
$("resultDiv").load("/MyControler/MyAction"
//, $("#myForm").formSerialize()
,{username:$("#username").val(),sex:$("sex").val()} //这样就可以了,但麻烦
, function() {
alert("ok);
}
)
也就是说 formSerialize()的结果作为load的第二参数时,mvc不认为load的请求是post。
但是如果表单内容很多的话就比较麻烦,请问有没有什么好的办法?
给input加name属性,值和id一样
直接在body加载完了,用ajax不就行了。何必用这样的方式呢!