如何使用JsonResult和AJAX返回自定义验证消息?
这是我在学生数据库中添加学生的控制器操作。
更新:
[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?
提前致谢。
答案 0 :(得分: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
}
答案 1 :(得分:1)
你可以return Json(new {result = "Success"});