2

のようなHTMLヘルパーを使用するときに出力を取得する値のエンコードについて心配する必要があるかどうか疑問に思っていますHtml.DropDownList()

もしそうなら、どうすればそれらをエンコードできますか?ドロップダウンを手動で作成している場合は簡単に実行できます。各値を「Html.Encode()」でラップするだけです。ただし、HTMLヘルパーを使用するときにこれを行う方法がわかりません。

4

2 に答える 2

4

値は自動的にエンコードされているように見えるので、自分で行う理由はありません。これは、codeplex(SelectExtensions.cs内)からダウンロードできる実際のASP.NETMVC1.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);
    }
于 2009-04-14T17:30:12.007 に答える
2

彼らはそうします。

自分でやりたい場合は、エンコードしている HTML の場所によって異なりますHtml.Encode()Html.AttributeEncode()

于 2009-04-14T17:22:22.043 に答える