如何在控制器的操作或视图页面中设置母版页的html标题?

时间:2010-03-10 20:45:46

标签: asp.net asp.net-mvc

我有一个控制器的操作和使用母版页的视图页面。

母版页的html标题部分如下:

<title>this is the page's title</html>

如何从我的控制器操作(最好)或我的操作视图页面中访问此部分?

3 个答案:

答案 0 :(得分:2)

<title><%= Model.PageTitle %></html>

public class MasterModel
{
    public string PageTitle { set; get; }
}

public class MyViewModel : MasterModel
{
    /* ... */
}

您可以在控制器操作中设置所需的基类PageTitle属性。

public ActionResult SomeAction ()
{
    MyViewModel model = new MyViewModel ();
    model.PageTitle = "this is the page's title";

    return View (model);
}

答案 1 :(得分:1)

我通常处理设置html页面标题的方式是通过Title属性页面。

在我看来,我有这个......

<%@ Page Language="C#" Title="Hello World" ... %>

在我的母版页中,我有这个......

<title><%=Page.Title%></title>

如果您想让控制器设置页面标题,您可能需要通过视图模型发送标题。

答案 2 :(得分:0)

从Action方法中将您想要的标题弹出到ViewData中,然后将其渲染到页面...

在行动方法

ViewData["PageTitle"] = "Page title for current action";

在母版页上

<!-- MVC 1.0 -->
<title><%=Html.Encode(ViewData["PageTitle"]) %></title>

<!-- MVC 2.0 -->
<title><%: ViewData["PageTitle"] %></title>