- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将变量定义为
public class EditModel
{
[Remote("IsNameAvailable", "Home", ErrorMessage = "Name is in use.")]
[Display(Name = "Name")]
public string Name{ get; set; }
}
在主 Controller 中
public JsonResult IsNameAvailable(string name)
{
if (duplicate)
return Json(false, JsonRequestBehavior.AllowGet);
else
return Json(true, JsonRequestBehavior.AllowGet);
}
但是当我在“保存”操作中检查 ModelState.IsValid 时,即使我可以在 View 上看到错误消息显示,它也始终返回 true。
public ActionResult Save(EditModel editModel)
{
if (!ModelState.IsValid)
{
//Return to view and display error in view
return View("Home", editModel);
}
//Input data is valid and save record
Repository.Save(editModel.Name);
}
ModelState 如何检查模型中 RemoteAttribure 的验证规则?
最佳答案
你有两个选择。您可以实现 IDataErrorInfo 或 IValidatableObject 接口(interface)并在那里重做验证。这些接口(interface)由 MVC 开箱即用地支持,您的 ModelState 将反射(reflect)这一点。
您的另一个选择是创建您自己的从 RemoteAttribute 派生的属性。在此自定义属性中,添加用于在服务器端应用相同验证的逻辑。
最后一个选项是我想要的,但这确实花费了更多时间。 This question不过应该可以帮助你。
关于asp.net-mvc-3 - ASP.MVC3 ModelState.IsValid 不包括 RemoteAttribute 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9077469/
我正在尝试使用 RemoteAttribute 来验证使用 JSON 的服务器端数据元素。我的数据字段是: [Display(Name = "My Number")] [Required]
似乎 ASP.NET MVC 3 中引入的 RemoteAttribute 验证器不会在服务器端进行验证,只能通过 JavaScript 进行验证。如果您在浏览器中关闭 JS,您会发现在模型绑定(bi
假设我有一个像这样的 ViewModel: public class Foo { public int Id { get; set; } public IEnumerable Avai
我正在使用 RemoteAttribute 在我的表单中进行一些自定义验证。为简单起见,我有一个单选组 PrimarySupportingDocument,有 3 个选项。如果是某个选择,远程验证应该
我一直在绞尽脑汁地试图找出为什么 ValidationController 操作没有被触发。 我在项目范围的 web.config 中启用了设置: 我有以下 Controller : [Outpu
我将变量定义为 public class EditModel { [Remote("IsNameAvailable", "Home", ErrorMessage = "Name is in u
我是一名优秀的程序员,十分优秀!