我有一个pdf文件,我想为它创建一个路线图。有没有办法让对象默认采用url而不是动作控制器组合?
而不是
routes.MapRoute("MyRouteName", "MyNiceUrl", new { controller = "ControllerName", action = "ActionName" });
有像
这样的东西 routes.MapRoute("MyRouteName", "MyNiceUrl", new { relativeUrl="MyrelativeUrl" });
答案 0 :(得分:2)
您不需要静态资源的路由。您需要url帮助器来引用它们:
<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") %>
答案 1 :(得分:0)
与this answer中一样:
使用您的控制器,或创建一个迷你控制器,然后使用Redirect ActionResult:
public class MyController : Controller
{
public ActionResult Pdf()
{
return Redirect( Url.Content( "mydoc.pdf" ) );
}
}