asp.net - 带有 aspx 扩展名的路由 url 到 mvc 路由
问题描述
我有一个网站将数据发布到旧的网络应用程序 url mywebsite.com/Confirm.aspx
我正在使用 asp.net mvc 编写一个新应用程序,我希望将相同的 url 帖子应用于我的控制器“处理器”上名为“确认”的操作。是否可以在 asp.net mvc 中使用路由来做到这一点?如果是这样怎么办?
解决方案
有一种解决方法。
您可以在 web.config 中添加以下请求处理程序。
<system.webServer>
<handlers>
<add name="HtmlFileHandler" path="*.html" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
<add name="AspxlFileHandler" path="*.aspx" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
然后您可以创建路由定义:
routes.MapRoute(
name: "LegacyHtml",
url: "{page}.html",
defaults: new { controller = "Home", action = "LegacyPage", page = UrlParameter.Optional }
);
routes.MapRoute(
name: "LegacyAspx",
url: "{page}.aspx",
defaults: new { controller = "Home", action = "LegacyPage", page = UrlParameter.Optional }
);
接下来,您可以在路由中提到的控制器操作中处理请求。
或者您可以根据页面路径变量的值进一步将操作重定向到其他页面/站点。
这在这个博客中得到了很好的解释。
推荐阅读
- r - 在用户选择下拉列表中的 R markdown / Dashboard 中从磁盘渲染图像
- javascript - 使用按钮更改 div 宽度
- sql-server - 在没有 sas/access 许可的情况下使用 SAS 从 SQL Server 读取数据
- javascript - 从模板的输入动态地形成输入,到服务中的一个函数 - Angular
- sql-server - 将 XML 解析为 (XPath, Value) 对
- reactjs - 是否可以将导出的 sass 变量列表转换为 TypeScript 联合类型(NextJs/React)
- php - 相同字符串值中的两个 bindParam
- c# - Datetimeoffset 没有给出正确的格式
- r - 是否有更快的方法对数据框中的选定列进行逐行求和?
- amazon-web-services - 如何在 .Net Core API 中安全地存储 AWS 访问密钥和秘密密钥