【发布时间】:2016-01-27 10:32:45
【问题描述】:
我不确定表达我想要完成的任务的正确方式,而且我绝对不是 MVC 专家。所以,我不确定处理这个问题的最佳方法。我觉得应该有一种比我目前所想的更优雅、基于 MVC 的方法。
我有一个物理结构类似于以下的网站:
www.example.com(网络表单应用程序)
-red(父 Web 表单应用程序中的本机文件夹)
-blue(mvc 子应用)
因此,默认情况下,网址如下所示:
www.example.com/red/test.aspx
www.example.com/blue/controller/action
对于某些控制器,我需要
www.example.com/blue/controller/action
改为在
有一个公开可见的网址
www.example.com/green/controller/action
到目前为止,我已经通过父/根网站中的重写规则实现了这一点。但是,mvc 子应用程序本身并不理解某些请求位于伪文件夹下。因此,当我为 www.example.com/green/controller/action 请求的页面呈现带有 html.BeginForm 的表单时,它会将表单的操作呈现为 /blue/controller/action。除了出站重写规则之外,是否有某种方式可以“教”mvc 子应用程序有关选择控制器的新根路径?在启动时注册路由时,有什么办法可以配置其中的一些吗?关于处理此问题的最佳方法还有其他建议吗?现在,请记住,从蓝色到绿色的重写并不是整个子应用程序。一些控制器需要重写以具有橙色等的根。
显然,颜色的使用只是一个例子。 :-)
【问题讨论】:
标签: asp.net asp.net-mvc url-rewriting routes url-rewrite-module