Вопрос

Последние несколько дней я играю с ASP.NET MVC и смог создать небольшой сайт.Все работает отлично.

Теперь мне нужно передать МЕТА-теги страницы (title, description, ключевые слова и т.д.) Через ViewData.(я использую главную страницу).

Как ты справляешься с этим?Заранее благодарю вас.

Это было полезно?

Решение

Вот как я сейчас это делаю...

На главной странице у меня есть держатель для размещения контента с заголовком по умолчанию, описанием и ключевыми словами:

<head>
<asp:ContentPlaceHolder ID="cphHead" runat="server">
    <title>Default Title</title>
    <meta name="description" content="Default Description" />
    <meta name="keywords" content="Default Keywords" />
</asp:ContentPlaceHolder>
</head>

И затем на странице вы можете переопределить все это содержимое:

<asp:Content ID="headContent" ContentPlaceHolderID="cphHead" runat="server">
    <title>Page Specific Title</title>
    <meta name="description" content="Page Specific Description" />
    <meta name="keywords" content="Page Specific Keywords" />
</asp:Content>

Это должно дать вам представление о том, как его настроить.Теперь вы можете поместить эту информацию в свои ViewData (ViewData["PageTitle"]) или включить ее в свою модель (ViewData.Model.MetaDescription - имело бы смысл для записей в блоге и т.д.) И сделать его управляемым данными.

Другие советы

Поместите это в свои viewdata!Сделайте что-то вроде следующего...

BaseViewData.cs - это класс viewdata, от которого наследуют все остальные классы viewdata

public class BaseViewData
{
    public string Title { get; set; }
    public string MetaKeywords { get; set; }
    public string MetaDescription { get; set; }
}

Затем ваш сайт.Мастер-класс (или любой другой) должен быть определен следующим образом:

public partial class Site : System.Web.Mvc.ViewMasterPage<BaseViewData>
{
}

Теперь на вашем сайте.На главной странице просто есть

<title><%=ViewData.Model.Title %></title>
<meta name="keywords" content="<%=ViewData.Model.MetaKeywords %>" />
<meta name="description" content="<%=ViewData.Model.MetaDescription %>" />

А ты сидишь и смеешься!

Привет, Чарльз

Ps.Затем вы можете развить эту идею, напримерпоместите средство получения для вашего класса User (IPrincipal) в класс LoggedInBaseViewData.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top