【发布时间】:2017-02-06 13:02:53
【问题描述】:
我有一个用于创建实体的 MVC 页面。完成后,我想重定向到父实体。我是这样做的:
return RedirectToAction("Edit", new { id = vm.Parent });
当我使用任何其他参数名称时,它被解释为 URL 参数:
return RedirectToAction("Edit", new { foo = vm.Parent });
呈现为/Entities/Edit?foo=234
但是 ASP MVC 选择了一个名为 id 的路由参数作为特殊情况,并且 URL 看起来像:/Entities/Edit/234。这对我不起作用,因为路由未设置为与此一起使用。我正在寻找像/Entities/Edit?id=234 这样的网址。
如何强制它以这种方式工作?路线设置:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
【问题讨论】:
-
在您的路线配置中,查找类似于
"{controller}/{action}/{id}"的映射路线并将详细信息添加到您的问题中。 -
你使用的是默认路由吗?
-
@spender 添加路由设置
标签: c# asp.net-mvc asp.net-mvc-routing url-routing