【问题标题】:ASP.NET MVC 5 custom route does not workASP.NET MVC 5 自定义路由不起作用
【发布时间】:2015-02-08 22:15:53
【问题描述】:

我正在尝试几个小时来让我的自定义路线正常工作。我总是得到一个 404 并且看不到我做错了什么。

我要获取的 URL 方案:/Download/fd39kssdf/myfile.zip。

这是路由,在默认路由之前定义:

routes.MapRoute(
            name: "Download",
            url: "Download/{hash}/{name}",
            defaults: new { controller = "Download", action = "Index"}
        );

这是控制器中名为“DownloadController”的代码:

public ActionResult Index(string hash, string name)
    {

    }

我尝试使用 UrlParameter.Optional 和 "" 将参数添加到路由,但都不起作用。

哪里出错了?

谢谢!

【问题讨论】:

  • 您还有其他路线吗?这是在默认路由之前定义的吗?
  • 在默认路由之前定义的,我目前只有这个路由和默认路由。

标签: asp.net-mvc


【解决方案1】:

您的问题是 IIS 直接映射了文件扩展名,因此您的请求甚至没有被传递给 ASP.NET 处理程序进行处理。它实际上是在那个目录中寻找一个 myfile.zip,它不存在给你 404 错误。

<configuration>
  <system.webServer>
    <handlers>
      <add name="Download-MVC"
         path="/Download/*"
         verb="*"
         type="System.Web.Handlers.TransferRequestHandler"
         preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
  </system.webServer>
</configuration>

【讨论】:

  • 你是个天才! ;-) 非常感谢你!问题现在完全清楚了,但我从来没有想到过。完美运行!
  • 不客气。如果您不介意,请接受我的回答,因为这对您有用。
  • 对不起,我试图投票,但没有成功,因为我没有足够的声誉。然后我没有尝试接受答案。现在就做!
  • 不用担心。很高兴我能帮上忙。
猜你喜欢
  • 1970-01-01
  • 2021-03-24
  • 2017-11-08
  • 2018-12-11
  • 2017-09-29
  • 1970-01-01
  • 2017-02-21
  • 2011-04-02
  • 2020-04-15
相关资源
最近更新 更多