2

这里有没有人以从数据库设置页面标题的方式构建您的视图、控制器和操作。你如何从另一种观点中识别一种观点?您在生命周期的哪个阶段检索页面标题并将其设置为视图/操作方法很多帖子分散在 asp.net、php 中,但对于 mvc 来说,我还没有找到一种有效的方法

4

2 回答 2

4

您可以使用操作过滤器:

public class ControllerAndActionNameAttribute : ActionFilterAttribute
{        
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        filterContext.Controller.ViewBag.ControllerName = filterContext.RequestContext.RouteData.Values["controller"].ToString();
        filterContext.Controller.ViewBag.ActionName = filterContext.RequestContext.RouteData.Values["action"].ToString();
        base.OnActionExecuting(filterContext);
    } 
}

但是,您可以根据操作和/或控制器从数据库中加载内容,而不是将操作或控制器名称放入视图包中。

于 2012-12-21T10:40:44.553 回答
1

如果您有服务或帮助方法从数据库中检索所有标题并将它们存储到某种缓存或静态变量 think Dictionary。根据您计划如何在站点运行时进行更新,确定何时或如何进行更新。

然后公开一个静态辅助方法,视图可以调用该方法来检索它们的标题。

您甚至可以合并一个 T4 模板来为每个视图设置一个属性,以使用正确的检索键调用该方法

于 2012-12-21T10:30:40.293 回答