如何使用Html.Raw在MVC Razor下拉列表

本文关键字:MVC Razor 下拉列表 Raw 何使用 Html | 更新日期: 2023-09-27 18:15:25

我在MVC Razor中使用下拉列表,并且我有自动HTML编码的问题。我的代码看起来像:

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

这工作得很好,除了DropdownNamesAndValues列表中的SelectListItem.Text属性可能有HTML粗体或斜体标签。这些都是目前出现在字面上的下拉菜单(如<i>hello</i> world)。我想知道怎么做:

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

如何使用Html.Raw在MVC Razor下拉列表

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

在控制器中编写一个方法,查找字符串中的<*> and </*>子集,并删除它们。

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

您应该在视图之前去掉html标记。在控制器中或者最好是在你希望得到值的模型中。

如果您希望允许在不编码的情况下发出HTML,您可以扩展 DropDownList帮助器,这样您就可以在ListItemToOption方法中排除对HttpUtility.HtmlEncode()的调用。看起来确实需要使用大量的代码,但是本文将对其进行扩展(用于不同的目的)。