我只是想知道当我使用 HTML 帮助器(如Html.DropDownList()
.
如果是这样,我如何对它们进行编码?如果我手动构建下拉列表,这很容易做到——只需用“ Html.Encode()
”包装每个值。但是,我不知道在使用 HTML 帮助程序时如何做到这一点。
我只是想知道当我使用 HTML 帮助器(如Html.DropDownList()
.
如果是这样,我如何对它们进行编码?如果我手动构建下拉列表,这很容易做到——只需用“ Html.Encode()
”包装每个值。但是,我不知道在使用 HTML 帮助程序时如何做到这一点。
看起来值是自动编码的,所以没有理由自己做。下面是实际 ASP.NET MVC 1.0 源代码的片段,您可以从 codeplex(在 SelectExtensions.cs 中)下载它:
private static string ListItemToOption(SelectListItem item) {
TagBuilder builder = new TagBuilder("option") {
InnerHtml = HttpUtility.HtmlEncode(item.Text)
};
if (item.Value != null) {
builder.Attributes["value"] = item.Value;
}
if (item.Selected) {
builder.Attributes["selected"] = "selected";
}
return builder.ToString(TagRenderMode.Normal);
}
他们是这样。
如果你想自己做,这Html.Encode()
取决于Html.AttributeEncode()
你在 HTML 中编码的位置。