在asp.net MVC中获取母版页名称
我最早可以通过编程获得asp.net MVC应用程序中使用的母版页的名称是什么 想法是根据母版页更改所使用的viewdata。我希望能够尽早设置一些东西,这样单个开发人员就不需要知道如何填充它。理想情况下,它只会发生在背景中 在最简单的场景中,对于不同类型的页面,我们会有不同的母版页,例如带有页眉、左导航、右导航和页脚的默认母版页,或者可能缺少右导航的安全母版页在asp.net MVC中获取母版页名称,.net,asp.net,asp.net-mvc,.net,Asp.net,Asp.net Mvc,我最早可以通过编程获得asp.net MVC应用程序中使用的母版页的名称是什么 想法是根据母版页更改所使用的viewdata。我希望能够尽早设置一些东西,这样单个开发人员就不需要知道如何填充它。理想情况下,它只会发生在背景中 在最简单的场景中,对于不同类型的页面,我们会有不同的母版页,例如带有页眉、左导航、右导航和页脚的默认母版页,或者可能缺少右导航的安全母版页 谢谢我想说的是,在您的视图被视图引擎解析之后,您的母版页才被知道。在控制器上调用View方法时,您可以设置母版页,不过: public
谢谢我想说的是,在您的视图被视图引擎解析之后,您的母版页才被知道。在控制器上调用View方法时,您可以设置母版页,不过:
public ActionResult Index()
{
return View("index","masterpagename");
}
我想如果你想用你的主页做任何事情,那就是最好的方式。我不知道您的问题的上下文,但我假设您希望根据使用的母版页操纵视图和/或视图数据?也许问题的解决方案不是首先通过编程获得母版页的名称
此外,编辑后:
您可以做的是创建一个新的“基本”控制器,该控制器继承默认控制器类。然后重写视图方法,并告诉开发人员使用该方法:
public class MySuperController : Controller
{
protected override ViewResult View(string viewName, string masterName, object model)
{
// do something here so your masterpage is different depending on the context //
string newMasterName = "something-something";
return base.View(viewName, newMasterName, model);
}
}
我“认为”所有其他视图方法要么通过此方法路由,要么不在您的案例中使用(需要您通过IView的案例)。是的,这是正确的,基本上根据使用的母版页更改视图数据。您是否有可以添加到开场白中的简化案例?我真的不明白为什么要这么做?