Asp Mvc сокращает URL с параметрами по умолчанию
У меня есть настройка маршрута, как это:
context.MapRoute(
"Default",
"Dashboard/{controller}/{departmentType}/{action}/{year}/{month}",
new
{
controller = "Kpi",
departmentType = DepartmentType.Ops,
action = "Details",
year = DateTime.Today.Year,
month = DateTime.Today.Month
});
Во взглядах, когда я использую Url.Action
, Mvc генерирует следующие маршруты:
- departmentType.Ops:
<a href="/dashboard" class="active">OPS</a>
- departmentType.Bps:
<a href="/dashboard/kpi/bps" class="active">BPS</a>
Mvc использует маршрут по умолчанию для моего отдела OPS, не заполняя {controller}
а также {departmentType}
параметры определены в моих маршрутах. Это делает JavaScript из плагина не в состоянии сделать правильный a
-тег активный.
Есть ли способ настроить Mvc, чтобы всегда заполнять все параметры при генерации маршрута?
Изменить: По запросу Url.Action
-методы
<a href='@Url.Action("details", "kpi", RouteValues(DepartmentType.Ops))'>OPS</a>
<a href='@Url.Action("details", "kpi", RouteValues(DepartmentType.BPS))'>BPS</a>
@functions
{
object RouteValues(DepartmentType dt)
{
return new
{
DepartmentType = dt,
year = ViewContext.RouteData.Values["year"],
month = ViewContext.RouteData.Values["month"]
};
}
}