我使用的是MVC 5.2.2.0,.net 4.5.1,我看到了一些奇怪的行为。我有一个这样的模型:
public class Program
{
// .... Other Properties
[Display(Name = "Courses Description")]
[RichText]
[AllowHtml]
public string CoursesDescription { get; set; }
// .... Other Properties
}
RichText
是自定义属性:
[AttributeUsage(AttributeTargets.Property)]
public class RichText : Attribute
{
public RichText() { }
}
它用于告诉T4模板将wysi数据编辑器属性添加到TextAreaFor
html助手。
我的观点如下:
<div class="form-group">
@Html.LabelFor(model => model.CoursesDescription, htmlAttributes: new { @class = "control-label col-sm-3" })
<div class="col-sm-6">
@Html.TextAreaFor(model => model.CoursesDescription, 10, 20, new { @class = "form-control", data_editor = "wysi" })
@Html.ValidationMessageFor(model => model.CoursesDescription, "", new { @class = "text-danger" })
</div>
</div>
使用AllowHtml属性,View呈现如下:
但是,如果我通过删除AllowHtml属性来修改模型,则视图会正确呈现。
public class Program
{
// .... Other Properties
[Display(Name = "Courses Description")]
[RichText]
public string CoursesDescription { get; set; }
// .... Other Properties
}
同样值得指出的是,删除RichText
属性不会改变任何内容,View仍会忽略Display
属性。
为什么AllowHtml
会干扰LabelFor
?
答案 0 :(得分:0)
深入研究,我注意到我的MVC项目使用的是MVC 5.2.2.0,但我无意中为我的模型项目安装了MVC 5.2.3.0。
将模型项目降级到5.2.2.0解决了问题。