Я хотел бы оптимизировать внешний вид URL, как показано ниже:
http://localhost:3817/Affaire/SearchAffaires?OnlyFavorite=True
Итак, я добавил новый маршрут:
routes.MapRoute(
"Search Affaire Only Favorite", // Route name
"{controller}/{action}/OnlyFavorite", // URL with parameters
new { controller = "Affaire", action = "SearchAffaires", OnlyFavorite = true } // Parameter defaults
);
Теперь URLлегче читать:
http://localhost:3817/Affaire/SearchAffaires/OnlyFavorite
Но возникла новая проблема: другие ссылки на моей странице изменились из-за маршрутизации!
Пример здесь: ... / Affaire / SearchAffaires? LabelName = Baxter & OnlyLabel = True & OnlyFavorite = True
До этого было: ... / Affaire / SearchAffaires? LabelName= Baxter & OnlyLabel = True
Как видите, в URL добавлена переменная OnlyFavorite .Наконец, я нашел причину такого поведения: система маршрутизации стремится сопоставить маршрут с тем, чтобы она повторно использовала значения переменных сегмента из входящего URL-адреса.Лучший способ справиться с этим поведением - это предотвратить его.Настоятельно рекомендуется не полагаться на это поведение и указывать значения для всех переменных сегмента в шаблоне URL.
Это немного раздражает, поскольку у меня много переменных!
Есть решение по этой проблеме?Почему такое поведение не происходит с одним единственным маршрутом (по умолчанию)?
Спасибо