【发布时间】:2015-09-03 13:08:29
【问题描述】:
我在Controller中使用这段代码RedirectToRoute
return RedirectToRoute(new
{
controller = "Posts",
action = "Post",
parametr1 = "11",
parametr2 = "aaaaaaaa"
});
url 输出是这样的:
https://localhost:45303/Posts/Post?parametr1=11&parametr2=aaaaaa
但我希望 url 输出没有这样的查询字符串:
https://localhost:45303/Posts/Post/1/aaaaaa
这是我的路线:
routes.MapRoute(
name: "Default1",
url: "{controller}/{action}/{parametr1}/{parametr2}/{parametr3}",
defaults: new { controller = "Home", action = "Index", parametr1 = UrlParameter.Optional, parametr2 = UrlParameter.Optional, parametr3 = UrlParameter.Optional }
);
如何做到这一点?
我使用RedirectToRoute 和RedirectToAction 但结果是一样的。
【问题讨论】:
-
你需要在你的
RouteConfig.cs文件中定义一个路由-url: {controller}/{action}/{parametr1}/{parametr2} -
你不能有 3 个
UrlParameter.Optional- 只有最后一个可以是可选的。从前 2 中删除UrlParameter.Optional
标签: asp.net-mvc asp.net-mvc-routing asp.net-routing