我只是想知道在使用像Html.DropDownList()
这样的HTML帮助程序时是否需要编写输出值的编码。
如果是这样,我该如何编码呢?如果我手动构建下拉列表,则很容易做到 - 只需用“Html.Encode()
”包装每个值。但是,在使用HTML帮助程序时,我不知道如何执行此操作。
答案 0 :(得分:4)
看起来这些值是自动编码的,所以没有理由自己编写。以下是您可以从codeplex(在SelectExtensions.cs中)下载的实际ASP.NET MVC 1.0源代码的片段:
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);
}
答案 1 :(得分:2)
他们这样做。
如果你想自己做,那就是Html.Encode()
和Html.AttributeEncode()
,具体取决于您编码的HTML中的位置。