关于页面标题&从服务器端生成元标记并在页面中呈现

时间:2013-09-23 08:03:10

标签: asp.net-mvc-3

我正在搜索生成网页标题和提示的提示。来自服务器端的元标记并在页面中呈现。 我得到了这个技巧。

第一种方法是为所有模型对象创建父接口。你可以:

public interface IBaseMasterViewDto
{
    int PageId { get; set; }
    string Title { get; set; }
    string MetaKeywords { get; set; }
    string MetaDescription { get; set; }
}

因此,在您的主视图中,您可以使用

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<IBaseMasterViewDto>" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

  <head>
    <title><%: Model.Title %></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="keywords" content="<%: Model.MetaKeywords %>" />
    <meta name="description" content="<%: Model.MetaDescription %>" />

如果MVC3中没有像母版页这样的概念,那么请指导我如何为布局页面实现上述代码或使上述代码与mvc3布局页面兼容。感谢

1 个答案:

答案 0 :(得分:0)

  

如果没有像MVC3中的母版页这样的概念,那么请指导我如何为布局页面实现上述代码或使上述代码与mvc3布局页面兼容。

让我们首先尝试清除这里的概念。 ASP.NET MVC 3是一个服务器端框架,允许在实现MVC模式的ASP.NET之上开发Web应用程序。

它支持渲染标记的不同视图:

  • ASP.NET WebForms
  • 剃刀
  • ...

ASP.NET WebForms视图具有MasterPage文件(.master)的概念。 Razor视图具有相同的名称Layouts(.cshtml)。

因此,您可以在Razor布局文件中应用完全相同的概念:

@model IBaseMasterViewDto

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
    <title>@Model.Title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="keywords" content="@Model.MetaKeywords" />
    <meta name="description" content="@Model.MetaDescription" />
    ...