原标题:无法修复错误配置的路线
我想基于过滤器(有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,而且我可以看到我的路线上一切都很好。
我该如何解决这个问题?提前谢谢。
编辑:使用Phil提供的工具我可以看到,如果我测试一个像
这样的网址http://localhost/MyApp/SubLineasProductos/Buscar.aspx/nombre/block
它符合我想要的路线。但是,当我运行我的应用程序并尝试使用在生成的URL具有以下形式之前发布的表单:
http://localhost/MyApp/SubLineasProductos.aspx/Buscar?filtro=nombre&criterio=block
如何解决这个新问题?
答案 0 :(得分:3)
您是否尝试使用我在此处发布的路线调试器:http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx