2012-01-08 17 views
1

のマスターレイアウトを持つビューでメタタグを作成できますか?私の意見の1つでは、ソーシャルプラグインのメタタグを作成する必要がありますが、その方法を見つけることができませんでした。asp.net mvc

メタタグはこの1つのビューにしか対応していないため、マスターレイアウトでコーディングしてからViewに値を設定すると正しく表示されません。

mater-layoutのheadセクションに追加できるViewにメタタグを作成する方法はありますか?または、私は単にマスターレイアウトにそれらを追加し、私は説明やキーワードのように値を設定する必要があります。

+0

あなたはすべての部分で、このViewBag値を作成(またはif(ViewBag.Metadescription != null)チェックを行う)必要があるということです。http://stackoverflow.com/questions/5531271/ razor-engine-seo-meta-tagsがあります。 – Oliver

答えて

7

razor sectionsでこれを行うことができます。ビュー固有のスクリプトやCSSではこれを行いますが、メタタグのパターンも適用できます。

<head> 
    <meta (global meta tag) ../> 
    @if (IsSectionDefined("HeadMeta")) 
    { 
     @RenderSection("HeadMeta") 
    } 
</head> 

部分図:レイアウトで

@section HeadMeta 
{ 
    <meta (view-specific social meta tag) ../> 
} 
+3

最初のコードサンプルを '@RenderSection(" HeadMeta "、required:false)'に短縮することができます。 – Oliver

1

唯一できることは、説明とキーワードに同じ方法を使用することです。そして、マスターレイアウトでコーディングしてから、ビュー内の値を設定するのはOKです。なぜなら、その場所は実際にレイアウト内にあり、その値は表示されるビューに依存するからです。

+0

実際には他のビューでは使用されないので、それらが意味するビューにメタタグを作成する方法がいくつかあると思います:-P ...とにかく感謝します。 ) –

1

はまた、あなたのマスターレイアウトでViewBag

を使用することができます。

<meta name="description" content="@ViewBag.MetaDescription" /> 

をあなたの部分では:

@{ 
ViewBag.MetaDescription = "My meta description string"; 
} 

下振れいくつかの有用な答えがここで見つけることができ