有很多非常好的帖子和解释如何使用 ASP.NET MVC 实现验证,我更喜欢其中之一:
但是,我真的很喜欢通过 jquery $.ajax 方法调用 ActionMethods。我想使用 $.ajax 的原因之一是因为会通过 $.ajax 调用将很多部分视图动态加载到页面中(甚至是用于创建实体的表单),而我不能只返回视图 -我将丢失所有动态加载的内容。
为了让您更好地了解该问题,我将发布一些简单的代码来解释我希望如何调用控制器操作并在客户端 jquery 代码中处理响应。
控制器ActionMethod:
public ActionResult CreateCustomer(string name, string accountNumber)
{
try
{
CustomerService.InsertCustomer(name, accountNumber);
return Json(new ActionInfo()
{
Success = true,
Message = "Customer Is Successfully Created"
});
}
catch (Exception ex)
{
return Json(new ActionInfo()
{
Success = false,
Message = ex.Message
});
}
}
在客户端代码中调用和处理:
$.ajax({
type: "POST",
url: $form.attr('action'),// /MyController/CreateCustomer
data: $form.serialize(),
error: HandleUnespectedError,
dataType: "json",
success: function(response) {
if (response.Success)
alert("Success: " + response.Message);
else
alert("Error: " + response.Message);
}});
有没有一种好方法可以使其中一些验证框架按我需要的方式工作?我知道我可以在 ActionInfo 中添加验证错误,然后在客户端中处理它,但我相信这已经是我的一个验证的构建。