Добавьте MapRoute для статического ресурса ASP.NET MVC - PullRequest
1 голос
/ 06 октября 2011

У меня есть PDF-файл, который я хотел бы создать для него карту маршрута.Есть ли способ заставить объект по умолчанию взять URL вместо комбинации контроллера действий?

Вместо

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

Есть что-то вроде

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

Ответы [ 2 ]

2 голосов
/ 06 октября 2011

Вам не нужны маршруты для статических ресурсов. Вам нужны помощники URL, чтобы ссылаться на них:

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

И если вы хотите, чтобы URL-адрес типа /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 голосов
/ 14 марта 2012

Как и в этот ответ :

Используйте свой контроллер или создайте мини-контроллер, а затем используйте Redirect ActionResult:

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

}
...