サーバーに戻り、データベースのチェックを少し実行してから、クライアントに戻って結果に応じてメッセージを表示する必要がある検証ルーチンに取り組んでいます.MVC3、Javascript、Ajaxを使用しています。
これは私のクライアント側です:
<script type="text/javascript">
$('#usrid').change(function (e) {
var formData = $("form").serialize();
$.ajax({
url: "ValidateOfficers",
type: "POST",
data: formData,
success: function (data) {
alert(data.reponseText);
},
error: function (data) {
alert(data.reponseText);
}
});
});
これは私のコントローラーアクションです:
[HttpPost, ActionName("ValidateOfficers")]
public ActionResult ValidateOfficers(userRole role)
{
int holderid = role.holderid;
int roleSelected = role.roleid;
int chosenUser = role.usrid;
int countRoles = db.userRoles.Where(i => i.roleid == roleSelected && i.holderid == holderid).Count();
if (countRoles == 0) //success:
{
Response.StatusCode = 200;
Response.Write("ok");
return View("Create", role);
}
if (countRoles > 0) //error:
{
Response.StatusCode = 500;
Response.Write("error");
return View("Create", role);
}
return View();
}
私がやりたいことは、カウントを実行し、カウント結果に基づいてステータスを送り返します..したがって、countRoles = 1 の場合、countRoles > 1 の場合、「役員が存在します」というテキストを返します。countRoles が 0 の場合、成功したと見なしてメッセージを表示できません。
サーバー側でこのカスタム メッセージを作成する方法と、それをクライアントにポストする方法に行き詰まっています。かみそりにいくつかのラベルを追加し、カウント結果に応じて表示/非表示にすることを考えていました.ご覧のとおり、非常に基本的な操作を行いましたが、役に立ちませんでした. 現在、アラート メッセージに「未定義」と表示されます。
これについていくつかのヒントを得ることができれば、私は最も感謝しています!!