從控制器的視圖中以編程方式獲取HTML的最佳方式是什麼? 我有時使用字符串生成器來渲染一些html,並將其從controller.is視圖發送它有效嗎?asp.net MVC在視圖中以編程方式獲取HTML
你有什麼建議?
從控制器的視圖中以編程方式獲取HTML的最佳方式是什麼? 我有時使用字符串生成器來渲染一些html,並將其從controller.is視圖發送它有效嗎?asp.net MVC在視圖中以編程方式獲取HTML
你有什麼建議?
HtmlHelpers是爲了那個。一個更好的選擇是創建一個HtmlHelper,它將生成您需要的標籤,並且您只需將對象傳遞給它(從視圖中的Model或ViewData),併爲您輸出適當的標籤。有一個TagBuilder
對象可以簡化您需要的所有內容。
public static string MyHtmlHelper(this HtmlHelper html, string url)
{
TagBuilder tag = new TagBuilder("a");
tag.Attributes.Add("href", url);
return tag.ToString();
}
然後在您的視圖:
<%= Html.MyHtmlHelper(ViewData["MyUrl"].ToString()) %>
這僅僅是一個簡單的例子,你可以推斷它根據自己的喜好。
搜索asp.net mvc html helpers
瞭解這是如何工作以及擴展方法如何工作。
沒有什麼錯用一個StringBuilder只要你正確逃避它組裝HTML和視圖渲染它,。
但是,這是糟糕的設計。
控制器應該不知道演示文稿;所有的HTML都應該在視圖中。
你想做什麼?
我正在渲染jquery treeview – maztt 2010-05-23 20:39:05
好的我想生成一個jQuery樹狀圖,它將有一系列的ul和li,你現在也可以用同樣的方法嗎? – maztt 2010-05-23 20:42:28
是的,我願意。你肯定會因爲你很可能需要循環,我寧願在.cs文件中有一個循環而不是.aspx/.ascx文件。 – Omar 2010-05-23 22:09:06
您可以使用一個部分視圖(.ascx),該視圖需要一個表示您的樹視圖的模型,但我需要知道該場景的確切細節才能正確決定。 – Omar 2010-05-23 23:15:15