ASP.NET MVC - 拉并从数据库填充母版的内容?(ASP.NET MVC - pull a

2019-08-17 08:00发布

我怎么能拉从数据库母版内容,并传递到母版,这样我的看法,从它继承? 这是一个例子:

客户端的网站都会有一个唯一的代码,让我们把它称为“TargetCode”,例如,ABC123,ABC456,等等。这种独特的代码将在查询字符串输入,例如:mysite.com/ABC123。

每个那些“TargetCode”都会有不同的CSS,姓名,地址,电话号码,(通用于所有网页,因此它们将被放置在母版页)和页面内容(大约2-3页,让我们称之为thse网页索引,产品和MoreInfo)。

所以,当我访问的网站地址,mysite.com / ABC123,首先它会寻找到数据库中,检查是否存在的代码,如果是的话,那拉母版信息(CSS,姓名,地址,电话号码),并使用该为母版。 然后,我会拉页内容(索引,产品和MoreInfo)其他的动作,所有这些页面将使用过程的相同母版内容。

非常感谢你。

Answer 1:

你的主人还可以在一个母版System.Web.Mvc.ViewMasterPage.MasterViewModel所以我想有你的控制器调用模型来获得你所需要的资源,然后绑定基于控制器视图调用合适的视图。



Answer 2:

这是我目前拥有和它似乎工作,但我不知道这是做正确的方法:

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()?



文章来源: ASP.NET MVC - pull and populate masterpage contents from database?