我试着让我的自定义路线上班几个小时。我总是得到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和""将参数添加到路线中,但两者都不起作用。
错误在哪里?
谢谢!
答案 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>