我有一个具有公共“最终用户”模式和“后台办公”模式的应用程序。两种“模式”几乎都共享相同的控制器逻辑,但这些不同“模式”的用户界面完全不同。这是从ASP.NET MVC控制器返回不同视图的正确模式吗?
使用了现成的默认路由是你当首次创建一个项目,我有类似如下:
Controllers\ HomeController.cs Views BackOffice Index.aspx Public Index.aspx Shared BackOfficeSite.Master PublicSite.Master
在我HomeController.cs
我有一个看起来像这样的逻辑:
public ActionResult Index()
{
var devices = DeviceRepository.FindDevicesByCustomer(100);
if(IsBackOffice())
{
return View(@"~/Views/BackOffice/Index.aspx", devices);
}
return View(@"~/Views/Public/Index.aspx", devices);
}
这是正确的方法来做到这一点,或者我挖自己的反模式孔?
我使用ASP.NET MVC 2
做'返回查看(@“〜/查看/内部/的Index.aspx”,设备);'不实际工作,即使它不是正确的方式来做到这一点。但我认为你的视图文件夹层次结构更有意义。 – Kev 2010-07-09 00:59:55
正如Kev所说,你可以在'View()'函数中传递一个相对路径到你的视图。 – Omar 2010-07-09 03:59:56
我已经编辑了我的答案,我通常不会将相对路径传递给View()函数 – 2010-07-09 04:40:32