2011-04-03 6 views
19

Je dois placer une description unique et des balises META mots-clés à chaque page. J'ai essayé cela. Mais ce n'est pas en cliquant.Razor Engine - SEO Meta tags

@{ 
    ViewBag.Title = "Title"; 
    ViewBag.Description = "Test"; 
    ViewBag.Keywords = "Test1, Test2, Test3"; 
} 

Comment placer les balises META dans MVC 3 Razor Engine?

Répondre

51

Dans la mise en page, vous pouvez définir une section:

<head> 
    ... 
    @RenderSection("metas") 
</head> 

et vue:

@section metas 
{ 
    <meta name="description" content="Test" /> 
    <meta name="title" content="Title" /> 
    <meta name="keywords" content="Test1, Test2, Test3" /> 
    ... 
} 

ou dans la mise en page :

<head> 
    <meta name="description" content="@ViewBag.Description" /> 
    <meta name="title" content="@ViewBag.Title" /> 
    <meta name="keywords" content="@ViewBag.Keywords" /> 
    ... 
</head> 

et dans la vue:

@{ 
    ViewBag.Title = "Title"; 
    ViewBag.Description = "Test"; 
    ViewBag.Keywords = "Test1, Test2, Test3"; 
} 
+2

Je veux faire une mise au vote au moins trois fois. Simple, propre, droit au but. – RekindledPhoenix

+0

Génial! Tellement facile une fois que vous le signalez! – ganders

+0

merci beaucoup, [ici] (http://stackoverflow.com/a/30151780/2218697) J'ai utilisé 'ViewBag' parce qu'il gère null et juste utilisé' @ ViewBag.Title' dans la mise en page et fonctionne très bien, mais' @ RenderSection' renvoie une erreur non définie lors de l'exécution si Title est null – stom

1

Vous devez émettre des tags <meta> dans votre page de disposition en utilisant les valeurs.
Vous pouvez obtenir les valeurs dans les tags en écrivant @ViewBag.Description.

25

Vous pouvez faire comme vous l'avez fait, mais vous devez les lier dans votre _Layout.cshtml. Ajoutez ceci à votre _Layout.cshtml dans la section <head>:

@if(ViewBag.Description!=null) 
{ 
    <meta name="description" content="@ViewBag.Description" /> 
} 
@if(ViewBag.Keywords!=null) 
{ 
    <meta name="keywords" content="@ViewBag.Keywords" /> 
} 
+0

Quelle est la raison d'utiliser '@if (ViewBag.Description! = Null)'? –

+0

Donc, il n'ajoute pas le tag si ce n'est pas nécessaire. –