在MVC3中渲染HTML部分块

时间:2012-06-17 22:46:54

标签: asp.net-mvc asp.net-mvc-3 partials

我正在尝试在我的母版页上插入自定义标头(保存在数据库中)。自定义标题会逐个用户更改。

我对如何将控制器连接到部分(我甚至可以这样做)感到有些困惑。我希望完成的是从一个特定的控制器中呈现一个代码块,并使用一些事件进行调用。

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

我已经创建了控制器,但是我不知道如何将它放到我正在编写的页面的子部分(不在同一个Controller中)。

道歉,如果这完全是胡说八道,还在学习MVC,我很害怕。

1 个答案:

答案 0 :(得分: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");
}

以下是如何在_Layout.cshtml中调用Html.Action助手

@Html.Action("GetHeader", 
             "SomeController",
             new { clientID = IsLoggedIn ? ClientID : (Guid?)null } )
相关问题