0

我正在寻找从服务器端生成页面标题和元标记并在页面中呈现的提示。我得到了这个技巧。

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

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 布局页面兼容。谢谢

4

1 回答 1

0

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

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

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

  • ASP.NET Web 窗体
  • 剃刀
  • ...

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" />
    ...
于 2013-09-23T08:14:21.023 回答