Я пытаюсь загрузить файл, когда я нажимаю на гиперссылку, но всегда получаю исключение, не найденное ресурсом.Ресурс не найден (действие контроллера MVC 5, .NET 4.6.1)
Контрольное действие никогда не попадает.
Index.cs.html:
@{
ViewBag.Title = "Files";
}
@Html.ActionLink("Download Report", "DownloadFile", "FileDownload", new { type = "pdf" }, new { @class = "" })
Вынесено Action-Link: http://localhost:58255/FileDownload/DownloadFile?type=pdf
Когда я раскомментируйте запись MapRoute "Files" в routeConfig ссылка действие оказывают например: http://localhost:58255/FileDownload/DownloadFile/pdf
Но ни один из них не работает! -> Ресурс не может быть найден
контроллер (только действие Index получает удар, когда представление нагрузки, но ничего, когда я нажимаю на ActionLink):
[AllowAnonymous]
public class FileDownloadController : Controller
{
public ActionResult Index()
{
return View();
}
FilePathResult DownloadFile(string type)
{
var fn = $"~/Documents/Test.{type}";
return File(fn, "application/pdf", Server.UrlEncode(fn));
}
RegisterRoutes.cs:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes(); // for attribute routing on action
AreaRegistration.RegisterAllAreas();
//routes.MapRoute(
// name: "Files",
// url: "{controller}/{action}/{type}",
// defaults: new { controller = "FileDownload", action = "DownloadFile", type = UrlParameter.Optional }
//);
// Should be last
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });
}
... из области WebForms ...
Ooooh my ...... Я бы оценил соответствующее сообщение об ошибке. Спасибо! – Legends