2012-06-17 62 views
1

我想在自己的母版頁上插入自定義標題(保存在數據庫中)。自定義標題根據用戶而變化。在MVC3中呈現HTML部分塊

我對如何將控制器附加到部分(如果我甚至可以這樣做)略有困惑。我希望能夠完成的是從一個特定的控制器中調用一段代碼來調用某些事件。

public ActionResult GetHeader(Guid clientID) 
    { 
     string szHeader = GetTheme(ThemeType.Portal, JoloTheme.ThemeArea.Header, clientID); 
     return Content(szHeader, "text/html"); 
    } 

是我創建的控制器,但我不知道如何(不在同一個控制器)得到這個到頁面上,我目前正在寫的小節。

道歉,如果這完全是無稽之談,我還是在學習MVC恐怕。

回答

2

您應該在_Layout.cshtml中使用Html.Action()助手。我認爲你應該使用Nullable Guid作爲參數,因爲你不能總是提供一個有效的clientID。

public ActionResult GetHeader(Guid? clientID) 
{ 
    string szHeader = GetTheme(ThemeType.Portal, JoloTheme.ThemeArea.Header, clientID); 
    return Content(szHeader, "text/html"); 
} 

這裏是你應該怎麼稱呼Html.Action幫手您_Layout.cshtml

@Html.Action("GetHeader", 
      "SomeController", 
      new { clientID = IsLoggedIn ? ClientID : (Guid?)null }) 
+0

感謝,幸運的是,客戶端ID始終保證(有一個默認值,如果爲空)。但沒有意識到Action可以在頁面上呈現,我認爲這只是用於鏈接。我還有很多的閱讀要做:D –