Оригинального названия: Не может фиксированные маршруты неправильно сконфигурированныеФорма вывешивает к неправильному URL
Я хочу, чтобы сделать поиск, основанный на фильтре (4) значений-плюса и критерии, введенный пользователем.
у меня есть следующие маршруты:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"SubLineasProductosDefault",
"SubLineasProductos.aspx/Create",
new { controller = "SubLineasProductos", action = "Create" }
);
routes.MapRoute(
"SubLineasProductosSearch",
"SubLineasProductos/Buscar.aspx/{filtro}/{criterio}",
new { controller = "SubLineasProductos", action = "Buscar"}
);
routes.MapRoute(
"SubLineasProductos",
"SubLineasProductos.aspx/{id}",
new { controller = "SubLineasProductos", action = "Index", id = "" }
);
routes.MapRoute(
"Default",
"{controller}.aspx/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
routes.MapRoute("Root", "", new { controller = "Home", action = "Index",
id = "" });
и следующий вид:
<% using (Html.BeginForm("Buscar", "SubLineasProductos",
FormMethod.Get)) { %>
<%= Html.Hidden("filtro", "nombre") %>
<%= Html.TextBox("criterio") %>
<button type="submit" title="Buscar">
<img src='<%= Url.Content("") %>' alt="" />
</button>
<% } %>
Форма не перенаправление к действию Buscar, но с индексом действия в контроллере SubLineasProductos. Я думаю, что у меня неправильные маршруты, но я не знаю, как их исправлять. Я прочитал this post, и, насколько я вижу, на моих маршрутах все в порядке.
Как это исправить? Заранее спасибо.
EDIT: С помощью инструмента, предоставленного Филом я могу видеть, что если я протестировать URL как
http://localhost/MyApp/SubLineasProductos/Buscar.aspx/nombre/block
он соответствует маршруту, я хочу. Но когда я запускаю мое приложение и попытаться использовать форму размещенную перед сгенерированным URL имеет вид:
http://localhost/MyApp/SubLineasProductos.aspx/Buscar?filtro=nombre&criterio=block
Как я могу исправить эту новую проблему?
спасибо за ваше время, Фил – eKek0