【问题标题】:Route url with aspx extension to mvc route带有 aspx 扩展名的路由 url 到 mvc 路由
【发布时间】:2019-06-26 08:09:06
【问题描述】:

我有一个网站将数据发布到旧的网络应用程序 url mywebsite.com/Confirm.aspx

我正在使用 asp.net mvc 编写一个新应用程序,我希望将相同的 url 帖子应用于我的控制器“处理器”上名为“确认”的操作。是否可以在 asp.net mvc 中使用路由来做到这一点?如果有怎么办?

【问题讨论】:

    标签: asp.net asp.net-mvc routing


    【解决方案1】:

    有一个解决方法。

    您可以在 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 }
    );
    

    接下来,您可以在路由中提到的控制器操作中处理请求。

    或者您可以根据页面路径变量的值进一步将操作重定向到其他页面/站点。

    这个解释得很漂亮in this blog.

    【讨论】:

      猜你喜欢
      • 2013-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      相关资源
      最近更新 更多