2014-02-15 48 views
1

在asp.net web表單中,我們將用戶控件作爲頁面的可重用組件。這些用戶控件可以通過公共屬性從外部傳遞值。在Web表單上,我們可以通過將此用戶控件的公鑰屬性設置爲公共屬性來刪除此用戶控件以顯示來自db的文本(如內容管理系統),並且它將提取該值。 (這個鍵值可以作爲列表或字典存儲在應用程序緩存中以避免DB往返)。Asp.net Mvc自定義內容像webforms用戶控件一樣管理區域

我想在asp.net mvc中實現同樣的想法,但對它來說是新的。任何專家建議實施相同的想法將會非常有幫助?謝謝

回答

2

用戶控件的概念是一個PartialView;有兩種方法可以使用局部視圖。首先是定義視圖本身的部分:

@Html.Partial("NameOfViewInControllerFolder", ModelForPartialview) 

第二種方法是有一個返回的局部視圖的操作方法:

public ActionResult X() 
{ 
    return PartialView("NameOfView"); 
} 

而且從您的視圖使用:

@Html.Action("X", "ControllerName") 

而這將調用操作方法,並插入結果。爲了確保只在視圖內調用動作,可以使用[ChildActionOnly]屬性。

如果操作方法,你可以使用jQuery通過AJAX請求它​​,並將結果加載到一個觀點:

$.ajax({ 
    type: "GET|POST", 
    url: "@Url.Action("X", "ControllerName")", 
    success: function(d) { /* d is HTML */ }); 
+0

感謝布賴恩。 Web表單通過單個http請求構建整個頁面,即使其上有許多用戶控件。但上面的解決方案看起來正在做一個單獨的Ajax調用。在我的情況下,可能有100個由簡單字符串饋送的小部分視圖。真的尋找優化的解決方案。 – Nexus23

+0

我給了你兩個選擇,並指出有一個AJAX好處(不是要求)。請仔細閱讀以上內容。 –

+0

謝謝Brian。將研究這個選項。 – Nexus23

相關問題