添加MapRoute的静态资源ASP.NET MVC
问题描述:
我有一个pdf文件,我想为它创建一个路线图。有没有办法让对象默认采取URL而不是行动控制器组合?添加MapRoute的静态资源ASP.NET MVC
而不是
routes.MapRoute("MyRouteName", "MyNiceUrl", new { controller = "ControllerName", action = "ActionName" });
有类似
routes.MapRoute("MyRouteName", "MyNiceUrl", new { relativeUrl="MyrelativeUrl" });
答
你不需要为静态资源的路线。你需要的网址助手引用它们:
<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") %>
答
正如this answer:
使用您CONTRO或创建一个微型控制器,然后使用重定向动作结果:
public class MyController : Controller
{
public ActionResult Pdf()
{
return Redirect(Url.Content("mydoc.pdf"));
}
}