ASP.NET MVC 5自定义路由不起作用
我想花几个小时让我的自定义路由工作。我总是得到一个404,并且看不到我做错了什么。ASP.NET MVC 5自定义路由不起作用
我试图获得的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和“”,但都没有工作。
错误在哪里?
谢谢!
你的问题是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>
你是个天才! ;-) 非常感谢你!现在问题已经很清楚了,但我永远不会想到这一点。完美的作品! – 2015-02-09 19:27:59
你非常欢迎。如果您不介意,请接受我的回答,因为这对您有用。 – 2015-02-09 19:33:14
对不起,我试图投票,但没有奏效,因为我没有足够的声望。然后我没有试图接受答案。现在做了! – 2015-02-09 19:41:35
您还有其他线路吗?这是否在默认路由之前定义? – 2015-02-08 22:22:38
它是在默认路由之前定义的,我目前只有这条路由和默认路由。 – 2015-02-08 22:23:59