使用 AllowHtml 时 LabelFor 不正确
LabelFor incorrect when using AllowHtml
我正在使用 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 属性,视图呈现如下:
但是,如果我通过删除 AllowHtml 属性修改模型,视图将正确呈现。
public class Program
{
// .... Other Properties
[Display(Name = "Courses Description")]
[RichText]
public string CoursesDescription { get; set; }
// .... Other Properties
}
同样值得指出的是,删除 RichText
属性并没有改变任何东西,视图仍然忽略 Display
属性。
知道为什么 AllowHtml
会干扰 LabelFor
吗?
深入研究后,我注意到我的 MVC 项目使用的是 MVC 5.2.2.0,但我无意中为我的模型项目安装了 MVC 5.2.3.0。
将模型项目降级到 5.2.2.0 解决了这个问题。
我正在使用 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 属性,视图呈现如下:
但是,如果我通过删除 AllowHtml 属性修改模型,视图将正确呈现。
public class Program
{
// .... Other Properties
[Display(Name = "Courses Description")]
[RichText]
public string CoursesDescription { get; set; }
// .... Other Properties
}
同样值得指出的是,删除 RichText
属性并没有改变任何东西,视图仍然忽略 Display
属性。
知道为什么 AllowHtml
会干扰 LabelFor
吗?
深入研究后,我注意到我的 MVC 项目使用的是 MVC 5.2.2.0,但我无意中为我的模型项目安装了 MVC 5.2.3.0。
将模型项目降级到 5.2.2.0 解决了这个问题。