元のタイトル:誤って構成されたルートを修正できません
フィルタ(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コントローラーのアクションIndexにリダイレクトされます。ルートが間違っていると思いますが、修正方法がわかりません。私はこの投稿を読みました、そして私が見ることができる限りすべてが私のルートでうまくいっています。
どうすればこれを修正できますか?前もって感謝します。
編集: Philが提供するツールを使用すると、次のようなURLをテストするとわかります。
http://localhost/MyApp/SubLineasProductos/Buscar.aspx/nombre/block
それは私が望むルートと一致します。しかし、アプリケーションを実行して、生成されたURLのフォームが作成される前に投稿されたフォームを使用しようとすると、次のようになります。
http://localhost/MyApp/SubLineasProductos.aspx/Buscar?filtro = nombre&criterio = block
この新しい問題をどのように修正できますか?