2011-11-23 105 views
5

我在MVC Razor中使用DropDownList,并且遇到了自动HTML编码的问题。我的代码如下所示:如何在MVC Razor DropDownList中使用Html.Raw?

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

只是在DropdownNamesAndValues列表中SelectListItem.Text属性可能具有HTML粗体或斜体标签在它工作正常。这些目前正在下拉菜单中出现(例如<i>hello</i> world)。我想知道该怎么做的是:

  • 如何将@ Html.Raw应用于SelectListItem.Text属性中的每一个属性?
  • 失败了,是否有简单的方法来删除HTML标记呢?基本上任何东西,而不是像现在这样直接显示它们。
+1

您应该在视图之前去掉html标签。无论是在控制器中还是在希望获得值的模型中。 –

+0

@Bigfellahull谢谢,我现在正在使用正则表达式在模型中去除它们。如果你让这个答案,我会接受它,因为你是第一个回应。 – mikel

回答

1

您应该在视图之前去掉html标签。无论是在控制器中还是在希望获得值的模型中。

2

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

我不认为你可以添加html标签下拉列表。

2

可能是你需要从你本身的模式,那么如果你想允许使用未编码要发射的HTML带来清洁的数据视图下拉列表

1

追加,你可以扩展的消除这些HTML元素DropDownList助手,因此您可以在ListItemToOption方法中排除对HttpUtility.HtmlEncode()的呼叫。看起来你需要使用很多代码,但扩展它(用于不同的目的)在this article中描述。