MVC 3 создание мета-описания динамических мета-ключевых слов для мультикультурного сайта - PullRequest
2 голосов
/ 10 февраля 2011

Мне нужно создать мета ключевые слова / описание. Я бы сохранил эти записи в базе данных, я полагаю, в формате xml; так как это будет на культуру.

Как мне это сделать?

любые отзывы, предложения, помощь, высоко ценится. спасибо

Ответы [ 4 ]

5 голосов
/ 10 февраля 2011

То, что вам нужно изменить, это просто вызов метода, который возвращает ключ / описание

Вы можете использовать Thread.CurrentThread.CurrentUICulture для определения культуры пользователя.

Вам нужно изменить на web.config для автоматического изменения культуры.

Ex .: (Web.Config)

<globalization uiCulture="auto" culture="auto" />

(контроллер)

ViewBag.Description = GetDescription(pageId, Thread.CurrentThread.CurrentUICulture.Name)

(View)

<meta name="description" content="@ViewBag.Description ">
4 голосов
/ 10 февраля 2011

Создайте родительский интерфейс для всех ваших объектов модели.и вы можете иметь:

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 %>" />

Надеюсь, это поможет.

1 голос
/ 10 февраля 2011

Шейн,

Я ответил на несколько похожий вопрос здесь, на SO, некоторое время назад.Я не охватил культурные элементы, но ответ Фуджи выше указывает на это.Кроме того, интерфейс alexl является намного лучшим решением для потери типизированных элементов viewdata (согласно моему ответу на аналогичный вопрос).В любом случае, вот что я ответил «в тот день» на этот вопрос:

MVC и метатеги для поисковой оптимизации

1 голос
/ 10 февраля 2011

1 - Получить ключевые слова / описание (из вашей модели) в вашем контроллере
2 - Присвоить их свойству Viewbag 3 - Показать свойство viewbag в макете (или представлении)

ИЛИ

Назначьте вашу модель с ключевыми словами / описанием и предоставьте ее вашему представлению в качестве параметра вашего контроллера.

О культуре:
Вам просто нужно указать ее в качестве параметра в контроллере метода (и в вашем маршруте).
После этого вы должны передать этот параметр своему методу, получая ключевые слова./description.

...