2016-10-29 4 views
0

asp.netのWebページを使用して単一ページでメタタグを使用する方法。私は現在、いくつかのページにまたがって動作するデフォルトのメタタグを持つレイアウトマスターページを使用していますが、マスターファイルのサブページのメタタグをオーバーライドする方法を見つけることができません。asp.netのWebページのページでメタタグを使用する方法

サブページでは、次のようなことがありますが機能します。

@{ 
    Layout = "~/siteLayout.cshtml"; 
    Page.Title = "Meta Page"; 
    Page.MetaKeywords = "keyword1, keyword2, keyword3"; 
} 

誰でも正しい方向に助けてくれますか、ありがとうございます。あなたのレイアウトで

答えて

0

使用このような何か:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>@ViewBag.Title</title> 
    <meta name="keywords" content="@ViewBag.Keywords"> 

そしてあなたのコントローラ、レイアウトやビューで、あなたはViewBag.TitleViewBag.Keywordsを設定する必要があります。上記のレイアウトを使用するビューで設定する方法の例を次に示します。

@{ 
    Layout = "~/Views/Shared/_YourLayout.cshtml"; 
    ViewBag.Title = "My Page Title"; 
    ViewBag.Keywords = "keyword1, keyword2"; 
} 

ViewBagプロパティを使用すると、コントローラからビューに動的に値を共有できます。内部的にViewBagプロパティは、ビューに使用するランダムなものを格納できる辞書のような名前/値のペアとしてViewDataに格納されています。

+0

こんにちは@Rawsonあなたが説明したようにページ上のビューバッグプロパティを使用するたびにランタイムエラーが発生します。これはWebページや厳密にMVCで動作しますか?それがエラーの理由であるかどうかはわかりません。 –

+0

これは、ASP.NET MVCフレームワークで完全にサポートされている(ASP.NET WebフォームとASP.NET Webページでは機能しない)Razor構文です。 WebページとMVCフレームワークを混在させていると思います。まず、このスレッドを読んでください:[リンク](http://stackoverflow.com/a/6198826/5495799)。 – Rawson

関連する問題