MVC 3数据注释属性间歇性地被忽略

时间:2011-06-26 06:19:24

标签: c# model-view-controller asp.net-mvc-3

我扩展了DataAnnotationExtensions项目,支持服务器端和客户端的Min / Max / RangeWords验证。验证工作得很漂亮,但我看到了以下问题:

给出模型中描述为

的字段
[Required(ErrorMessage = "Please enter a short description")]
[MaxWords(40, ErrorMessage = "Description is too long - 40 words max")]
[DisplayName("Business description")]
[DataType(DataType.MultilineText)]
public string Description { get; set; }

Data.MultilineText仅在重新编译项目后立即生效(和/或进行一些需要重新编译的更改)。之后,多行类不会添加到相关字段中。换句话说:我第一次运行表单,一切看起来都很好;在第二次运行时,该属性显然被忽略了,我得到一个单行文本框。

我应该指出,在项目中,错误消息和描述不是英文,而是希伯来语(不确定是否有任何影响)。此外,验证在此项目内和单独的测试项目中都有效。

可能是罪魁祸首?这是我的事,还是DataType处理中的错误?

谢谢和问候, 伊利亚安德。

1 个答案:

答案 0 :(得分:0)

如果可以,您应该在视图中使用文本区域。

@Html.TextAreaFor(model => model.Description)

你也可以为此编写EditorTemplate,实现你想要的html并使用@Html.EditorFor(model => model.Description)

希望这有帮助