Asp.net Mvc:动态页面标题

Pic*_*els 2 asp.net-mvc title

在webforms中,我总是使用我的母版页根据当前网址设置页面标题和元描述.我想为我的Asp.net Mvc项目做同样的事情,但我不知道从哪里开始.能够根据控制器和/或动作设置标题/描述并使用一些默认值,这将是很好的,因为我没有指定任何信息.我这样做的原因是因为我喜欢一切都在一个地方,因为这样可以很容易地发现错误.

编辑:
在阅读答案和谷歌搜索后,我认为从xml文件获取信息可能很酷.使用Xml看起来像这样:

<website title="default title for webpage">
    <controller name="HomeController" title="Default title for home controller"> 
       <action name="Index" title="title for index action" />
    </controller>
</website>
Run Code Online (Sandbox Code Playgroud)

我是Asp.net Mvc的新手,所以我不确定在哪里初始化它.

小智 7

我建议采取以下策略:

创建模型层次结构:

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

abstract class HomeBaseModel : MasterModel
{
    PageTitle = "Home";
}

abstract class UsersBaseModel : MasterModel
{
    PageTitle = "Users";
}

/************************************/

class HomeNewsModel : HomeBaseModel
{
    PageTitle = "News";
}

class UsersProfileModel : UsersBaseModel
{
    PageTitle = "Profile";
}
Run Code Online (Sandbox Code Playgroud)

您可以定义一个主模型来保存页面标题,并创建基本模型来保存控制器的默认标题.这样,您可以显式定义每个操作中的标题,也可以将其保留,以便使用此控制器的默认标题.

然后在您的主视图中,您只需编写一次:

<title><%= Model.PageTitle %></title>
Run Code Online (Sandbox Code Playgroud)

它已经完成了.