我有一个MVC2的简单视图模型类,它具有MagicItem属性:
public class VoodooViewModel {
[Required(AllowEmptyStrings = false,
ErrorMessage = "The Magic Item is required")]
[RegularExpression(@"^[^-]*$",
ErrorMessage = "Hyphens are not allowed in Magic Items.")]
public string MajorModel { get; set; }
}
我只是试图在这个属性中禁止连字符,但对于我的生活,我无法让它工作。谁能看到我做错了什么(RequiredAttribute工作正常)?
在我看来,我所说的正则表达式“从字符串的开头到结尾,匹配任何不是连字符的东西”。我在Regex测试器here中对此进行了测试,但它确实有效 - 但不在我的代码中。无论我放入多少个连字符,我都无法显示错误。
答案 0 :(得分:1)
像工具一样,我忘记检查控制器的操作方法,看看ModelState是否有效:
public ActionResult UberController(VoodooViewModel vvm)
{
if (!ModelState.IsValid) return View(vvm); //turns out this line is important
(...yaddayaddayadda...)
}
感谢Darin让我指向了正确的方向。