我在 MVC4 中工作并想使用Uppercase
属性定义模型。想法是,Uppercase 属性的存在会导致模型值在到达服务器时转换为大写。
目前我在模型中有以下代码:
[Required]
[Display(Name="Account Code")]
[StringValidation(RegExValidation.AccountCode, Uppercase=true)]
public string Account
{
get { return _account; }
set
{
if (value != null)
_account = value.ToUpper();
}
}
但我真正想要的是:
[Required]
[Display(Name="Account Code")]
[StringValidation(RegExValidation.AccountCode)]
[Uppercase]
public string Account { get; set; }
我认为我可能需要创建 Uppercase 属性作为 aValidationAttribute
以确保它在模型命中服务器时被触发。但这似乎有点错误,因为我并没有真正验证数据。有没有更好的办法?
另外,有什么方法可以确保属性的调用顺序?我真的想在自定义StringValidation
属性触发之前将数据转换为大写,因为这会检查正则表达式模式中文本的大小写。
为了为此添加一些背景知识,我想减少添加代码以大写数据的需要。必杀技将是一个单一属性,它在模型绑定或验证阶段更新进入服务器的数据。然后可以在属性中引用此StringValidation
属性以修改其检查中使用的 RegEx 值。然后,我还可以在自定义辅助方法中查找此属性TextBoxFor
,这样我就可以添加text-transform: uppercase
它,使其在客户端看起来正确。
有没有人有任何想法?