2

JsonResultとAJAXを使用してカスタム検証メッセージを返すにはどうすればよいですか?

StudentDBに生徒を追加するためのコントローラーアクションは次のとおりです。

更新しました:

    [HttpPost()]
    public ActionResult AddStudent(string studentName, int studentId)
    {
        var studentPresent = studentTable.Students.Where(s => s.StudentID == studentId&& b.StudentName == studentName);

        if (studentPresent == null || !studentPresent .Any())
        {
            var student = new Student()
                {
                    StudentName = studnetName,
                    StudentID = studentId,
                };
            studentTable.AddObject("Student", student);
            studentTable.SaveChanges();

         }
        return new JsonResult();      

    }

これが私のJavaScriptです:

function addStudent() {
    $.ajax({
        type: 'POST',
        url: '/StudentAdmin/AddStudent',
        data: {
            studentName: $('#studentName').val(),
            studentNumber: GetTextBoxValue('#studentNumber'),            
        },
        success: function (result) {
            if ($('#studentPresent').val() == null) {
            showMessage('Success', 'Student saved successfully.', '', false);                
        } else {
            showMessage('Error', 'Student already present in database.', '', false);
        }
            GetGrid('#studentGrid').ajaxRequest();
            hideForm();
        },
        studentPresent: function (result) {
            showMessage('Error', 'Student Already present in Database.', '', true);
        }

    });
}

この学生がすでにデータベースに存在する場合は、「エラー」メッセージを表示したいと思います。また、JasonResultにさらに検証メッセージを渡す方法はありますか?

前もって感謝します。

4

2 に答える 2

2

任意のオブジェクトをオブジェクトに渡すことができJsonResult、JavaScriptにシリアル化されます(またはシリアル化を試みます)。

return new JsonResult(new { Anything = "Hello World" });

その結果、次のようなJSONオブジェクトが作成されます。

{"Anything":"Hello World"}

result変数内のJavaScriptにレンダリングされています。

上記のコードは、実際には生成されているエラーメッセージを示していません。SQL例外のテキストを取得する場合は、try/catchブロックが必要になります。

編集:

次のようなコードがあります。

return Json(new { message = "Success" }); // success message
return Json(new { message = "Failure" }); // fail message

そして、javascriptでは、コールバックは次のようになります。

success: function(result)
{
     if(result.message == "Success")
       // Show success message
     else
       // Show Error Message
}
于 2012-05-18T17:52:04.897 に答える
1

あなたはできるreturn Json(new {result = "Success"});

于 2012-05-18T17:52:17.583 に答える