Кодируют ли вспомогательные методы ASP.NET MVC, такие как Html.DropDownList (), выходной HTML? - PullRequest
2 голосов
/ 14 апреля 2009

Мне просто интересно, стоит ли мне беспокоиться о кодировании значений, которые выводятся при использовании таких помощников HTML, как Html.DropDownList().

Если да, то как мне их кодировать? Это легко сделать, если бы я строил раскрывающийся список вручную - просто оберните каждое значение «Html.Encode()». Однако я не знаю, как это сделать при использовании помощников HTML.

Ответы [ 2 ]

4 голосов
/ 14 апреля 2009

Похоже, что значения кодируются автоматически, поэтому нет причин делать это самостоятельно. Вот фрагмент фактического исходного кода 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);
    }
2 голосов
/ 14 апреля 2009

Они делают.

Если вы хотите сделать это самостоятельно, это Html.Encode() и Html.AttributeEncode() в зависимости от того, где в HTML вы кодируете.

...