ASP.NET MVC 5自定义路由不起作用

时间:2015-02-08 22:15:53

标签: asp.net-mvc

我试着让我的自定义路线上班几个小时。我总是得到404而且看不出我做错了什么。

我试图获取的网址:/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和""将参数添加到路线中,但两者都不起作用。

错误在哪里?

谢谢!

1 个答案:

答案 0 :(得分:0)

问题是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>