我有一个带有登录表单的部分视图(带有用户名和密码字段)和一个带有两个属性的视图模型,其中包含DataAnnotations属性[Required]
。
在客户端,我有一个正确配置的表单,通过ajax发布,实际上正确地到达了操作。
你能告诉我这两个选项中的任何一个是否是ajax表格帖子的最佳做法,使用数据注释来验证*或者我是完全错误的? (我在与此问题相关的代码中添加了一些注释)
选项A
if (ModelState.IsValid)
{
//Do whatever with database, session, etc...
return Json(new { error:false; });
}
else
{
//The html returned by this code comes with css-class="input-validation-error"
//for elements whose values didnt pass the validation
//should i use Jquery in client to replace actual html of the partial view
//by this resulting html?????
return PartialView("Login", usersubmitted);
}
选项B
if (ModelState.IsValid)
{
//Do whatever with database, session, etc...
return Json(new { error:false; });
}
else
{
//I could return a Json array with all validation errors that happened
//and in client side use Jquery to add the css-class "input-validation-error"
//to those html elements whose id matches with the values in returned array.
return Json(
new{
{validation-error:"UserName"},
{validation-error:"Password"}
}
);
}
答案 0 :(得分:1)
选项B将是我的偏好,因为它似乎通过将显示和渲染决策完全留在View本身的手中来保持视图和控制器之间关注点的更强分离。控制器只是通知View有问题的元素。