2011-10-06 164 views
1

我有一个pdf文件,我想为它创建一个路线图。有没有办法让对象默认采取URL而不是行动控制器组合?添加MapRoute的静态资源ASP.NET MVC

而不是

routes.MapRoute("MyRouteName", "MyNiceUrl", new { controller = "ControllerName", action = "ActionName" }); 

有类似

routes.MapRoute("MyRouteName", "MyNiceUrl", new { relativeUrl="MyrelativeUrl" }); 

回答

2

你不需要为静态资源的路线。你需要的网址助手引用它们:

<a href="<%= Url.Content("~/Content/test.pdf") %>">Download pdf</a> 

如果你想有一个网址像/SomeController/MyNiceUrl,以满足您的PDF文件,你可以简单地写一个控制器的动作:

public ActionResult MyNiceUrl() 
{ 
    var pdf = Server.MapPath("~/Content/test.pdf"); 
    return File(pdf, "application/pdf"); 
} 

然后:

<%= Html.ActionLink("Download pdf", "MyNiceUrl", "SomeController") %> 
0

正如this answer

使用您CONTRO或创建一个微型控制器,然后使用重定向动作结果:

public class MyController : Controller 
{ 
    public ActionResult Pdf() 
    { 
     return Redirect(Url.Content("mydoc.pdf")); 
    } 

}