2011-04-19 84 views
1

我有MVC2一个简单的视图模型类,它有一个MagicItem属性:RegularExpressionAttribute没有工作,我不知道为什么

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

此问题必须在其他地方,因为此代码工作时,我尝试了。 – 2011-04-20 05:37:48

回答

1

就像一个工具,我忘了在控制器的操作方法来检查,看看是否是ModelState中有效与否:

public ActionResult UberController(VoodooViewModel vvm) 
{ 
    if (!ModelState.IsValid) return View(vvm); //turns out this line is important 

    (...yaddayaddayadda...) 
} 

感谢Darin指着我在正确的方向。

相关问题