【发布时间】:2011-08-24 11:16:18
【问题描述】:
在我的控制器中,视图有 4 个 ActionResult(显示、搜索、修改和删除)。对于最后 3 个,有一个 RedirectToAction() 作为 Actionesult 并且在 Route 我有一个这样的自定义:
routes.RouteMap("Detail", "/Show/{id}", new { controller : "Administration", action : "Show", id : UrlParameters.Optional });
当我得到搜索结果时,我需要在 url 中添加 2 个参数。这 2 个参数在 POST 中发送。 如何在 url 重写中按原样添加此参数?
当我来到观景台时
http://localhost/Show/1
搜索后
http://localhost/Show/1/foo/foo
感谢您的帮助:)
[编辑] 经过一番测试,我找到了解决方案。 除非显示 (GET | POST),否则表单和控制器都在 POST 中。
有2条路线:
routes.MapRoute(
"RechercheEtablissementGucps",
"DetailGucps/{idGucps}/{CategorieEtablissementValue}/{SearchField}",
new { controller = "Administration", action = "AfficheDetailGuCPS", idGucps = UrlParameter.Optional, CategorieEtablissementValue = UrlParameter.Optional, SearchField = UrlParameter.Optional }
);
routes.MapRoute(
"Gucps", // Route name
"DetailGucps/{idGucps}", // URL with parameters
new { controller = "Administration", action = "AfficheDetailGuCPS", idGucps = UrlParameter.Optional } // Parameter defaults
);
如果我进行搜索,我将获得所需的参数,如果完成另一个操作,则没有任何参数
/DetailGucps/29/DIR/fr
【问题讨论】:
-
您不能在 URL 中放置 POST。
-
嗯是的,但我不能在控制器中或通过路由添加这个?
-
正如@Slaks 所说,您不能在 URL 中放置 POST。而且因为使用路由,您正在定义您的 url 的外观,好吧,您不能。
-
如果我更新 GET 中的所有方法,我有 404 错误:(
标签: c# asp.net-mvc url-rewriting