如何在MVC Razor DropDownList中使用Html.Raw?

时间:2011-11-23 08:51:24

标签: c# asp.net asp.net-mvc asp.net-mvc-3 razor

我在MVC Razor中使用DropDownList,并且遇到自动HTML编码问题。我的代码如下:

@Html.DropDownList("MyList", Model.DropdownNamesAndValues)

哪个工作正常,但SelectListItem.Text列表中的DropdownNamesAndValues属性可能包含HTML粗体或斜体标记。这些目前正在下拉列表中显示(例如<i>hello</i> world)。我想知道该怎么做:

  • 如何将@ Html.Raw应用于每个SelectListItem.Text属性?
  • 如果失败了,是否有一种简单的方法来删除HTML标签?基本上是任何东西,而不是像现在一样按字面显示它们。

4 个答案:

答案 0 :(得分:2)

在控制器中写入一个方法,在字符串中查找<*> and </*>个子集,并将其删除。

我认为你不能在下拉列表中添加html标签。

答案 1 :(得分:2)

可能需要从模型本身中删除这些html元素,然后将清理后的数据附加到视图下拉列表中

答案 2 :(得分:1)

如果您希望在不编码的情况下发布HTML,则可以扩展 DropDownList帮助器,以便排除{{1}中对HttpUtility.HtmlEncode()的调用}} 方法。看起来好像你需要使用很多代码,但在this article中描述了扩展它(用于不同的目的)。

答案 3 :(得分:1)

您应该在视图之前删除html标记。在控制器中,或者最好在您希望获得值的模型中。