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 ビューには、レイアウト ( ) と呼ばれる同等のものがあり.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 に答える