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

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

Как я буду делать это?

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

4 ответа

Решение

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

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

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

Пример: (Web.Config)

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

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

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

(Посмотреть)

<meta name="description" content="@ViewBag.Description ">

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

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 - Получить ключевые слова / описание (из вашей модели) в вашем контроллере
2 - Назначить их свойству Viewbag. 3 - Показать свойство Viewbag в макете (или представлении).

ИЛИ ЖЕ

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

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

Шейн,

Я ответил на несколько похожий вопрос здесь, на ТАК некоторое время назад. Я не освещал культурные элементы, но ответ Фуджи выше указывает на это. Кроме того, интерфейс alexl является на порядок лучшим решением для потери типизированных элементов viewdata (согласно моему ответу на аналогичный вопрос). во всяком случае, вот что я ответил "в тот день" на этот вопрос:

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

Другие вопросы по тегам