代码之家  ›  专栏  ›  技术社区  ›  eKek0

表单发布到错误的URL

  •  0
  • eKek0  · 技术社区  · 15 年前

    原标题: 无法修复错误配置的路由

    我想根据一个过滤器(有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>
    <% } %>
    

    表单没有重定向到Action Buscar,而是重定向到SublineAsProductTos控制器中的操作索引。我想我走错了路线,但我不知道怎么修。我读过 this post 我所能看到的一切都很好。

    我怎么修这个?事先谢谢。

    编辑: 使用Phil提供的工具,我可以看到如果我测试类似

    http://localhost/MyApp/SubLineasProductos/Buscar.aspx/nombre/block

    它符合我想要的路线。但是,当我运行我的应用程序并尝试使用在生成的URL具有表单之前发布的表单时:

    http://localhost/MyApp/SubLineasProductos.aspx/Buscar?filtro=nombre&criterio=block

    我怎样才能解决这个新问题?

    1 回复  |  直到 15 年前
        1
  •  3
  •   Haacked    15 年前

    是否尝试使用我在此处发布的路由调试器: http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx