2011-11-23 91 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中描述。