您可以使用原始 HTML<form>
标记或@HTML.BeginForm
帮助程序。这是一个仅使用的示例HTML
完整的解决方案:
<form action"/Controller/Method" method="POST" id="signInForm">
<input type="text" name="form1" />
<input type="text" name="form2" />
<input type="submit" value="Sign in" />
</form>
$( function() {
$( 'signInForm' ).submit( function( evt ) {
//prevent the browsers default function
evt.preventDefault();
//grab the form and wrap it with jQuery
var $form = $( this );
//if client side validation fails, don't do anything
if( !$form.valid() ) return;
//send your ajax request
$.ajax( {
type: $form.prop( 'method' ),
url: $form.prop( 'action' ),
data: $form.serialize(),
dataType: "json",
traditional: true,
success: function( response ) {
document.body.innerHTML = response;
}
});
});
});
我建议使用@Url.Action
设置表单操作的 URL。这样路由可以生成你的 URL。
<form action"@Url.Action("Method", "Controller")" method="POST" id="signInForm">
<input type="text" name="form1" />
<input type="text" name="form2" />
<input type="submit" value="Sign in" />
</form>
它稍微高级一些,但我会尝试使用Take Command之类的东西来管理您的 jQuery Ajax 调用。
免责声明,我是 TakeCommand 项目的贡献者。