我可以在不涉及任何控制器的情况下将ASPX页面添加到MVC项目中吗

本文关键字:添加 MVC 项目 ASPX 任何 情况下 控制器 我可以 | 更新日期: 2023-09-27 17:50:40

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

除了视图之外,我们的网站还部署了编译到DLL中的所有内容。这意味着,在任何时候,我都可以在中午的飞行中编辑视图。有没有一种方法可以添加一个可以通过HTTPGET或POST调用的新页面,这样我就可以在控制器中做一些通常会做的事情,而不需要实际执行新的操作等?我知道这不是一个好的方法,也不会是长期的解决方案,我只需要一个计划。。。毕竟,生意就是生意。

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

我可以在不涉及任何控制器的情况下将ASPX页面添加到MVC项目中吗

您必须做的第一件事是将Routes提取到XML文件中,这样您就可以动态添加路由(它所要做的就是回收应用程序池(。我还建议将Routes从web.config中提取到它们自己的.config文件中,该文件在web.config中被引用。

第二件事是,如果你想做到这一点,你必须将Webforms与ASP.NET MVC混合使用。

需要注意的是,在基于XML的路由中使用UrlParameter.Optional是有问题的,至少我从未使用过它。

我相信,由于MVC中路由的工作方式,它将首先尝试使用路由系统来找到有效的路径。否则,它应该使用只查找文件的常规方法来查找aspx页面。请记住,仅仅是asp.net页面的aspx文件(或razor文件(不应该在Views文件夹中,因为MVC应用程序被配置为拒绝提供该目录中的文件。我想你只是在说一两页?任何比这更复杂的事情,我都会像上面提到的文章一样,尝试更有力地将它们分开。

您可以将经典的web表单与MVC混合使用。

我几乎可以肯定,您可以将一个新的Controller类添加到App_Code文件夹中,它将在不需要编译的情况下获得。

我想这完全取决于你是否有一条符合惯例的路线。