我可以将ASPX页面添加到MVC项目而不涉及任何控制器吗?

时间:2011-04-19 17:51:35

标签: c# asp.net-mvc

我有一个有趣的情况,我需要在正常构建计划之前和正常构建存储库之外快速向客户提供功能。我需要它今晚上线,没有重新编译。

我们的站点部署了除了Views之外编译成DLL的所有内容。这意味着我可以随时在中午动态编辑视图。有没有办法可以添加一个可以通过HTTP GET或POST调用的新页面,以便我可以做一些我通常在Controller中做的事情而不实际制作新的Action等等?我知道这不是一个好的方法,它不是长期的解决方案,我只需要一个计划......毕竟,生意就是生意。

编辑:我也无法编辑Global.asax路由表,它也是编译的。

4 个答案:

答案 0 :(得分:2)

你需要做的第一件事是拔出你的Routes into XML files,这样你就可以动态添加路线(所有这一切都是回收App-Pool)。我还建议将路由从web.config中拉出到他们自己的.config文件中,该文件在web.config中引用。

第二件事是,如果你想这样做,你必须混合Webforms with ASP.NET MVC

重要的是要注意使用UrlParameter.Optional对基于XML的路由有问题,至少我从来没有让它工作。

答案 1 :(得分:1)

我相信由于路由在MVC中的工作方式,它将尝试首先使用路由系统找到有效路径。如果没有它应该使用寻找文件的常规方法来查找aspx页面。请记住,只是asp.net页面的aspx文件(或razor文件)不应该在Views文件夹中,因为MVC应用程序配置为拒绝提供该目录中的文件。我假设你刚刚谈论一两页?任何比这更复杂的东西,我会试着像上面提到的文章那样更强烈地将它们分开。

答案 2 :(得分:0)

答案 3 :(得分:0)

我几乎肯定你可以在App_Code文件夹中添加一个新的Controller类,并且无需编译即可获取它。

我想这一切都取决于你是否有基于会议的路线会打不开它。