2009-02-17 58 views
2

我可以通过编程获取将在asp.net MVC应用程序中使用的主页名称的最早点是什么?在asp.net MVC中获取主页名称

正在改变视图数据的想法取决于母版页。我希望能够尽早设置一些内容,以便单个开发人员不需要知道如何填充它。理想情况下,它只会发生在后台。

在simplist场景中,我们可以针对不同类型的页面使用不同的主页面,例如默认的页面,leftnav,rightnav和footer,或者可能缺少rightnav的安全页面。

感谢

回答

2

我说当你的母版页被称为将是正确后,您的观点已经得到您的视图引擎解决的地步。

public ActionResult Index() 
{ 
    return View("index","masterpagename"); 
} 

我认为,如果你想与你的母版任何会被方式:您可以打电话时,你的控制器查看方法虽然设置你的母版。我不知道你的问题的上下文,但我认为你想操纵视图和/或viewdata取决于哪个masterpage被使用?也许问题的解决方案不是以编程方式首先获取masterpage的名称?

此外,编辑之后: 您可以做的是创建一个新的“基本”控制器,它继承了默认的控制器类。然后你重写查看方法,并告诉你的开发人员使用:

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)。

+0

是的,这是正确的,从本质上改变视图数据取决于使用的母版页。 – NikolaiDante 2009-02-17 11:37:54