在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)
它已经完成了.
| 归档时间: |
|
| 查看次数: |
5639 次 |
| 最近记录: |