ASP.NET MVC - извлечь и заполнить содержимое главной страницы из базы данных? - PullRequest
2 голосов
/ 06 октября 2009

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

У клиентов на сайте будет уникальный код, назовем его «TargetCode», например, ABC123, ABC456 и т. Д. ... Этот уникальный код будет введен в строку запроса, например: mysite.com/ABC123.

Каждый из этих «TargetCode» будет иметь разные CSS, имя, адрес, номер телефона (общие для всех страниц, поэтому они будут размещены на главной странице) и содержимое страницы (около 2-3 страниц, давайте позвоним эти страницы указатель, продукты и дополнительная информация).

Поэтому, когда я захожу на адрес веб-сайта mysite.com / ABC123, сначала он заглядывает в базу данных, проверяет, существует ли код, если да, то он извлекает информацию о главной странице (css, имя, адрес, номер телефона) и используйте это для главной страницы. Затем я извлеку содержимое страницы (Index, Products и MoreInfo) для других действий, все эти страницы, конечно же, будут использовать одно и то же содержимое главной страницы.

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 06 октября 2009

Ваш мастер также может взять MasterPage System.Web.Mvc.ViewMasterPage.MasterViewModel, поэтому я бы попросил ваш контроллер вызвать модель, чтобы получить необходимые ресурсы, а затем связать правильное представление на основе вызовов представления вашего контроллера.

1 голос
/ 06 октября 2009

Это то, что у меня сейчас, и, похоже, это работает, но я не уверен, что это правильный способ сделать это:

public override void OnActionExecuted(ActionExecutedContext filterContext)
{
    HomeRepository hr = new HomeRepository();
    var result = filterContext.Result as ViewResult;
    if (result == null)
        return;

    string TargetCode = string.Empty;
    Controller control = filterContext.Controller as Controller;
    System.Collections.Specialized.NameValueCollection query = filterContext.HttpContext.Request.QueryString;

    if (query.Count > 0 && query["TargetCode"] != null && query["TargetCode"].ToString() != "")
    {
        TargetCode = query["TargetCode"].ToString();
    }

    if (string.IsNullOrEmpty(TargetCode))
        if (control != null) control.HttpContext.Response.Redirect("./NoCode");

    if (!hr.CheckTargetCodeExists(TargetCode))
    {
        if (control != null) control.HttpContext.Response.Redirect("./InvalidCode");
    }
    var ThemeData = hr.GetMasterPageContent(TargetCode);
    result.ViewData["ThemeData"] = ThemeData;
}

Должен ли я использовать OnActionExecuting () или OnActionExecuted ()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...