2011-10-06 68 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")); 
    } 

}