我在提交表单后尝试将用户重定向到特定地址。 我使用的是我的内容控制器中的以下代码:
return RedirectToAction("Business", new RouteValueDictionary(new { controller = "Content", action = "Business", Id = business.BusinessID }));
它创建一个这样的URL: 的 www.x.com/Content/Business?Id=13
我真正想要的是这样的: 的 www.x.com/Content/Business/13
我真的不希望将查询字符串与?分开?但要与其他网址保持一致。
有没有这样做?
答案 0 :(得分:2)
代码实际上应该是同一个东西,但需要注意的是在Global.asax文件中,我设置了我的路由表,我需要有以下代码片段,以便生成我想要的结果。请注意第三个url参数{parameter}
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{parameter}", // URL with parameters
new { controller = "Tokens", action = "Index", parameter = UrlParameter.Optional } // Parameter defaults
);
使用该代码,我只需要在我的代码中使用变量“parameter”而不是“Id”:
return RedirectToAction("Business", new RouteValueDictionary(new { controller = "Content", action = "Business", parameter= business.BusinessID }));
对于您在MapRout()函数中定义的变量使用相同的名称非常重要。
这样做,我得到了我想要的结果:
<强> www.x.com/Content/Business/13 强>
答案 1 :(得分:1)
检查出来
返回RedirectToAction(“商家”,“内容”,新{Id = business.BusinessID});
答案 2 :(得分:0)
对我来说,您的代码行会产生您期望的链接,您的路由设置是否正常?