と を使用ASP.NET MVC 4
してjQuery Validate
います。
ページにテキストボックスとボタンがあります。これはボタンであり、送信ボタンではありません。ボタンをクリックすると、テキスト ボックスに入力された数値が検証され、2 つの部分ビューのうちの 1 つが表示されます。
ここに私のHTML
マークアップがあります:
@Html.TextBoxFor(x => x.ChangeIncidentNumber)
<button id="verifyButton" type="button">Verify</button>
@Html.ValidationMessageFor(x => x.ChangeIncidentNumber)
jQuery Validate を使い始める前に、次のようにしました。
$(document).ready(function () {
$('#verifyButton').click(function () {
$.ajax(
{
type: "POST",
url: "/Server/GetChangeIncidentDetails",
data: { changeIncidentNumber: $('#ChangeIncidentNumber').val() },
dataType: "html",
success: function (result) {
var domElement = $(result);
$("#changeIncidentDetails").html(domElement);
}
});
});
});
私のGetChangeIncidentDetails
行動方法:
public ActionResult GetChangeIncidentDetails(string changeIncidentNumber)
{
ImplementationType implementationType = GetImplementationType(changeIncidentNumber);
try
{
if (implementationType == ImplementationType.Change)
{
Change change = changeService.FindChangeByNumber(changeIncidentNumber);
if (change != null)
{
ChangeViewModel viewModel = Mapper.Map<ChangeViewModel>(change);
return PartialView("ChangeInformation", viewModel);
}
else
{
// If it is null then I want to display an error message on the front end
}
}
else if (implementationType == ImplementationType.Incident)
{
// Code is almost similar as above
}
else
{
}
}
catch (Exception ex)
{
// Handle error
}
}
上記のアクション メソッドに入る前に、jQuery Validate を画像に追加して、クライアント側の検証を処理しました。これは私が現在持っているものです:
$(document).ready(function () {
$("#searchForm").validate({
rules: {
ChangeIncidentNumber: "required"
},
messages: {
ChangeIncidentNumber: "Required"
}
});
$('#verifyButton').click(function () {
$('#searchForm').valid();
});
});
2 つをマージする方法がわかりません。検証と ajax 呼び出しを一緒に実行できますか。別々にしておく必要がありますか。また、クライアント側のエラー メッセージを表示するにはどうすればよいif change == null
ですか?