加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

在子文件夹中运行MVC的Asp.net WebForms应用程序

发布时间:2020-12-16 09:58:28 所属栏目:asp.Net 来源:网络整理
导读:假设我有一个 Asp.net WebForms应用程序,它具有: 根文件夹中的少量* .aspx文件作为WebForms应用程序运行(不涉及路由) 一个子文件夹,即FormsFolder,其中包含其他文件和子文件夹,作为常规Web表单应用程序运行 一个子文件夹MvcFolder,它具有Asp.net MVC应用程
假设我有一个 Asp.net WebForms应用程序,它具有:

>根文件夹中的少量* .aspx文件作为WebForms应用程序运行(不涉及路由)
>一个子文件夹,即FormsFolder,其中包含其他文件和子文件夹,作为常规Web表单应用程序运行
>一个子文件夹MvcFolder,它具有Asp.net MVC应用程序的正常结构,并将其内容作为一个整体运行
>使用HttpModule在global.asax中注册路由
>此应用程序的两个部分(或两个应用程序,如果您愿意)必须在同一IIS应用程序下运行(因此,有两个应用程序,只能使用虚拟目录)

以下是一些问题:

>这种情况是否可能?
>是否可以将MVC应用程序附加到WebForms应用程序而不更改后者的代码?可以更改配置,但如果可以使用子文件夹配置,则应尽可能避免配置.
>是否可以将UrlRoutingModule配置为仅在针对特定子文件夹发出请求但未在应用程序的其他部分中配置时运行?

解决方法

事实上,这是可能的,因为它们将在同一应用程序的上下文中运行,这应该不是问题.您可能需要做的就是为自己注册一个新的ViewEngine,它指向您的视图的/ MvcFolder / Views.应用程序的根目录仍然是?/因此您可能需要确保您的路由考虑到这一点,例如:通过将“MvcFolder / {controller} / {action}”等内容作为路由规则.

MVC和WebForms应用程序可以并行运行,没有任何问题. UrlRoutingModule将在请求到达WebForms HttpHandler之前匹配任何规则,因此要小心路由任何规则,例如’DoSomething.aspx’,因为这将被MVC拦截.

如果您选择不在基本web.config中注册UrlRoutingModule,则可以在/MvcFolder/web.config文件中注册它.这将停止在/ MvcFolder之外匹配的任何路由.

你为什么要在HttpModule中注册规则?这些将针对每个请求运行,因此您确定不会在每个请求中不必要地注册规则吗?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读