Значения маршрута Global.asax
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional, filterDate = DateTime.Now.AddDays(-1), filterLevel = "INFO" } // Parameter defaults
);
Вот моя actionlink
@Html.ActionLink(item.MachineName, "Machine", new { id = item.MachineName, filterLevel = "hello" }, null)
Когда в actionlink указан уровень фильтра, он генерирует URL-адрес следующим образом:
http://localhost:1781/LoggingDashboard/log/level/VERBOSE
На той же странице, на которой я сейчас нахожусь.Если я изменю actionlink для использования свойства, отличного от того, которое имеет значение по умолчанию в таблице маршрутов (да, если я использую filterDate, оно тоже портится), оно генерирует такую ссылку:
@Html.ActionLink(item.MachineName, "Machine", new { id = item.MachineName, foo = "bar" }, null)
http://localhost:1781/LoggingDashboard/log/Machine/C0UPSMON1?foo=bar
Это поведение правильно?Должен ли я быть в состоянии переопределить значения по умолчанию, установленные в таблице маршрутов?Я подтвердил, что если я удаляю defaultLevel по умолчанию из таблицы маршрутов, это будет работать так, как я ожидаю:
http://localhost:1781/LoggingDashboard/log/Machine/C0UPSMON1?filterLevel=VERBOSE
--- EDIT --- извините, вот действие
public ActionResult Machine(string id, DateTime filterDate, string filterLevel)
{
...
var model = new LogListViewModel { LogEntries = logEntries };
return View(model);
}
Для награды я хочу знать, как переопределить значения «по умолчанию», которые указаны в маршрутах из global.asax.т.е. я хочу иметь возможность переопределить filterLevel и filterDate.