私の見解では ajax.beginform を使用しています。
@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post))
{
<table>
<tr>
<td>
<input type="text" id="txtCardNumber">
</td>
<td>
<button id="Search"/>
</td>
</tr>
</table>
}
検索ボタンをクリックすると、HTTPPost のコントローラーに直接移動する代わりに、最初にカード番号に対していくつかのクライアント側の検証を行いたいと考えています。そして、検証が失敗した場合、サーバー側に行きたくありません。だから私は return false をやってみましたが、瞬間的ではなく長時間ハングします。event.preventdefault を試しましたが、元に戻すことができず、モデル値を渡す適切な値でサーバー側に移動します。
$("#Search").button({.live("click", function (event) {
var isvalid = SubmitValidations();
if (isvalid) {
//show progress bar
return true;
} else {
event.preventDefault();
alert("Please correct the errors on the screen before proceeding.");
return false;
}
});
カスタム クライアント側検証を実行し、クライアント側検証が成功した場合にのみサーバー側に移動する方法。