具有一个控制器不同视图文件夹的 MVC

Posted

技术标签:

【中文标题】具有一个控制器不同视图文件夹的 MVC【英文标题】:MVC with one controller different view folder 【发布时间】:2010-11-06 19:35:57 【问题描述】:

更新 - 改写的问题

我打算将 JQuery Mobile 用于我正在构建的新 MVC 应用程序的移动端。由于 JQuery Mobile 将在客户端管理不同的设备,因此我创建的每个页面只需要一个移动视图。这将简化所需的视图数量,目前基本上可以归结为移动和桌面视图。

我想让一个控制器调用 2 个不同的视图,但需要注意的是视图位于不同的文件夹(移动设备和桌面)中。例如,控制器上的 Index 方法将调用构建视图路径方法

return View(BuildViewPath("Index"));

如果我的文件夹是这样的话,它可以工作,但我讨厌不得不为每个控制器视图继续创建设备子文件夹

Views
   Login
       Desktop
          Index.aspx
       Mobile
          Index.aspx

对于我的登录控制器,我希望视图的结构如下:

Views
    Desktop
        Login
            Index.aspx
    Mobile
        Login
            Index.aspx

我尝试返回“~/Views/Desktop/Login/Index”,但没有成功。我了解命名约定 controlerview,所以我知道为什么这是不对的。

这是可能的还是不是一个好主意?如果不是,那么为 2 个不同的视图路径组织项目的最佳实践是什么。请记住,我正在寻找一个控制器。

谢谢, 保罗

【问题讨论】:

【参考方案1】:

这里是解决方案http://www.asp.net/learn/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-application

【讨论】:

以上是关于具有一个控制器不同视图文件夹的 MVC的主要内容,如果未能解决你的问题,请参考以下文章

ASP.Net MVC 将数据从视图传递到不同文件夹中的控制器

JSP MVC:如何使用具有多个视图和动作的控制器 [重复]

具有封装/防御性编程的 MVC(模型视图控制器)

ASP.NET MVC:调用不同的视图

MVC3 - 不同的设备,不同的视图,相同的控制器

MVC 从不同的控制器调用视图