【问题标题】:Could someone explain how this ignore route works?有人可以解释一下这条忽略路线是如何工作的吗?
【发布时间】:2015-01-09 21:16:30
【问题描述】:

所以我向我的 MVC4 添加了一个 ASMX Web 服务,但是当我尝试访问它时,我收到了“找不到资源”错误。经过搜索,我找到了answer here.

简而言之,我必须将以下 IgnoreRoute 添加到我的 RouteConfig 文件中。

routes.IgnoreRoute("{*x}", new { x = @".*\.asmx(/.*)?" }); 

我非常了解 MVC 中的 MapRoute 功能,但对 IgnoreRoute 了解不多。我知道它的目标是 .asmx 后缀,但我不确定这个快速修复的方式和原因。

这个 IgnoreRoute 是如何工作的,以及它究竟为什么让我的 MVC 应用神奇地了解如何查找和执行我的 Web 服务?顺便说一句,我目前唯一的映射路线是默认路线,但是否有另一种/更好的方法可以使用 MapRoute 或其他修复方法解决此问题?

【问题讨论】:

    标签: c# asp.net-mvc-4 ignoreroute


    【解决方案1】:

    ignore route 表示路由应该忽略这些请求,并且将发生这些请求的 ASP.NET 处理。 http://haacked.com/archive/2008/07/14/make-routing-ignore-requests-for-a-file-extension.aspx/

    【讨论】:

    • 好的,有道理。那么 "@".*\.asmx(/.*)?" 到底是做什么的呢?只是有一些奇怪的语法。取消'.'s?
    • 它是一个正则表达式:匹配任意数量的字符 .* 后跟一个点 \. 后跟字符 asmx,可选地后跟一个正斜杠和任意数量的字符 (/.*)? .并且引号前的@ 字符允许c# 将其解释为逐字字符串文字(否则它会抱怨字符串中的无效字符)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多