Asp.net mvc 3 为什么mvc3中的路由映射请求不起作用?

Asp.net mvc 3 为什么mvc3中的路由映射请求不起作用?,asp.net-mvc-3,Asp.net Mvc 3,我创建了一个简单的mvc3 razor web应用程序。 在它上面我有一个控制器和这样的动作: public class DownloadController : Controller { public ActionResult Index() { return File(@"\Files\MyFile.zip", "compress/zip"); } } 在我看来,我写了以下几点: @Html.ActionLink("Downl

我创建了一个简单的mvc3 razor web应用程序。 在它上面我有一个控制器和这样的动作:

public class DownloadController : Controller
{       
    public ActionResult Index()
    {
        return File(@"\Files\MyFile.zip", "compress/zip");
    }

}
在我看来,我写了以下几点:

    @Html.ActionLink("Downlod file","Index","Download")

但这次溃败不起作用 怎么了

它是我完整的全局文件内容

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
        );


        routes.MapRoute("downloadroute",
                        "Files/",
                     new { controller = "Download", action = "Index", 
                          id =UrlParameter.Optional }
                    );

谢谢大家

您的路由与物理文件夹
文件冲突
。您可以重命名文件夹以解决此冲突,或更改路由url(并将该路由置于默认路由之前):

并使用绝对路径而不是相对路径:

<a href="@Url.Content("~/Downloads")">download it</a>


您的路由配置是否有其他设置?@Ikaso是的,我编辑我的帖子并将所有路由放在全局文件中。这些路由按声明顺序匹配。将
下载路由
置于
默认
路由之前。我将下载路由置于默认路由之前,但不起作用是的更改路由配置后是否重新编译?我希望当用户单击此href链接时,它会转到下载控制器中的索引操作,但不起作用
        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
        );


        routes.MapRoute("downloadroute",
                        "Files/",
                     new { controller = "Download", action = "Index", 
                          id =UrlParameter.Optional }
                    );
routes.MapRoute("downloadroute",
                "Downloads/",
                 new { controller = "Download", action = "Index" }
                );
<a href="@Url.Content("~/Downloads")">download it</a>