Перенаправить представление с помощью Html.ActionLink

У меня следующая проблема: я делаю вызов метода контроллера, он получает параметр. Код выглядит следующим образом:

@Html.ActionLink("Preview", "ReportExecution", "Report", new { reportName = ViewBag.docLiquidation }, null) 

Это создает мне следующий адрес:

http://localhost:65500/Report/ReportExecution/docRetentionDeclaration

docRetentionDeclaration определен как параметр, но не является.

Код метода следующий:

[HttpPost]
public FileResult ReportExecution(string reportName)
{
     .
     .
     return new File();
}

Я ценю помощь, которую вы можете оказать мне.

1 ответ

Решение

Предполагая, что у вас есть следующий маршрут:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{reportName}",
    new { controller = "Home", action = "Index", reportName = UrlParameter.Optional }
);

действие контроллера будет ожидать, что параметр будет назван reportName:

public ActionResult ReportExecution(string reportName)
{
    ...
}

Обратите внимание, как имя параметра действия контроллера должно совпадать с маркером маршрута в вашем определении маршрута.

Другие вопросы по тегам