Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 关于页面标题和;从服务器端生成元标记并在页面中呈现_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 关于页面标题和;从服务器端生成元标记并在页面中呈现

Asp.net mvc 3 关于页面标题和;从服务器端生成元标记并在页面中呈现,asp.net-mvc-3,Asp.net Mvc 3,我正在搜索从服务器端生成页面标题和元标记并在页面中呈现的技巧。 我有这个把戏 第一种方法是为所有模型对象创建父接口。你可以: public interface IBaseMasterViewDto { int PageId { get; set; } string Title { get; set; } string MetaKeywords { get; set; } string MetaDescription { get; set; } } 因此,在您的主

我正在搜索从服务器端生成页面标题和元标记并在页面中呈现的技巧。 我有这个把戏

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

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

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

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

它支持不同的视图来呈现标记:

  • ASP.NET Web窗体
  • 剃刀
ASP.NET WebForms视图具有母版页文件的概念(
.master
)。Razor视图具有相同的等效布局(
.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" />
    ...
@model IBaseMasterViewDto
@模型名称
...

谢谢您的回答,但是如何从action方法填充元标记和页面标题。我的模型是否需要扩展名为IBaseMasterViewDto的接口?请指导我如何实施它。还告诉我,如果不是,这是否是最好的方法,然后用最好的方法指导我。谢谢