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

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

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

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

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

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

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

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

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

如果要允许在不进行编码的情况下发出HTML,可以扩展 DropDownList帮助程序,以便可以在ListItemToOption方法中排除对HttpUtility.HtmlEncode()的调用。 看起来好像你需要使用很多代码,但是本文将介绍扩展它(用于不同的目的)。