Я использую каракули отчет, который выводит быстрые отчеты в форматах pds, html и xls. Он работает нормально, как показано в документации ниже:
http://doddlereport.codeplex.com/wikipage?title=Web%20Reporting
Теперь мне нужно иметь возможность передать значение идентификатора в контроллер, чтобы отчет генерировался динамически.
маршрут по умолчанию выглядит следующим образом:
return routes.MapRoute("DoddleReport",
"{controller}/{action}.{extension}",
new { controller = defaultAction, action = defaultAction },
new { extension = new ReportRouteConstraint() }
, который выводит следующий URL localhost/Report/ReadMeters.htm
при использовании следующего
actionlink @Html.ActionLink("HTM", "ReadMeters", new{ extension = "htm"})
Я попытался добавить новый маршрут в global.asax, который будет принимать параметр ID следующим образом:
routes.MapRoute("DoddleReportExtension",
"{controller}/{action}.{extension}/id",
new { controller = "Report", action = "Index" },
new { extension = new ReportRouteConstraint(),
id = UrlParameter.Optional
}
);
и передача значения с помощью actionlink:
@Html.ActionLink("View", "ReadMeters", new { id = ViewBag.ID, extension = "htm" }
но это вывод URL localhost/Report/ReadMeters.htm?id=19
это не работает, и я получаю следующую ошибку:
Ошибка сервера в приложении '/'.
Ресурс не найден.
Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, изменилось его имя или временно недоступен. Пожалуйста, просмотрите следующий URL и убедитесь, что он написан правильно.
Запрошенный URL: /Report/ReadMeters.htm
Есть идеи, как это исправить, пожалуйста? Это мой первый проект MVC, и до сих пор я использовал механизмы маршрутизации по умолчанию для других областей проекта, но застрял на этом.
Ваша помощь приветствуется, спасибо