2012-06-17 60 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 –