Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net MVC中获取母版页名称_.net_Asp.net_Asp.net Mvc - Fatal编程技术网

在asp.net MVC中获取母版页名称

在asp.net MVC中获取母版页名称,.net,asp.net,asp.net-mvc,.net,Asp.net,Asp.net Mvc,我最早可以通过编程获得asp.net MVC应用程序中使用的母版页的名称是什么 想法是根据母版页更改所使用的viewdata。我希望能够尽早设置一些东西,这样单个开发人员就不需要知道如何填充它。理想情况下,它只会发生在背景中 在最简单的场景中,对于不同类型的页面,我们会有不同的母版页,例如带有页眉、左导航、右导航和页脚的默认母版页,或者可能缺少右导航的安全母版页 谢谢我想说的是,在您的视图被视图引擎解析之后,您的母版页才被知道。在控制器上调用View方法时,您可以设置母版页,不过: public

我最早可以通过编程获得asp.net MVC应用程序中使用的母版页的名称是什么

想法是根据母版页更改所使用的viewdata。我希望能够尽早设置一些东西,这样单个开发人员就不需要知道如何填充它。理想情况下,它只会发生在背景中

在最简单的场景中,对于不同类型的页面,我们会有不同的母版页,例如带有页眉、左导航、右导航和页脚的默认母版页,或者可能缺少右导航的安全母版页


谢谢

我想说的是,在您的视图被视图引擎解析之后,您的母版页才被知道。在控制器上调用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的案例)。

是的,这是正确的,基本上根据使用的母版页更改视图数据。您是否有可以添加到开场白中的简化案例?我真的不明白为什么要这么做?