我有一个参数值,我必须对URL进行编码。因此,我的理解是它必须作为查询字符串发送到URL的末尾而不是主URL的一部分。我已经通过直接将URL粘贴到浏览器中来成功测试了这一点。
我正在尝试重定向到以下网址:
Server/Application/Area/Controller/Action/?id=xyz
但是当我使用
时 return RedirectToAction("Action", "Controller", new { area = "Area", id = Url.Encode(uniqueId) });
我被发送到
Server/Application/Area/Controller/Action/xyz
如何阻止这种情况发生?
答案 0 :(得分:3)
这是因为您的默认路线是;
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Site", action = "Index", id = UrlParameter.Optional }
);
如果您想继续使用此路线,则必须在网址中更改您的ID参数。
但是如果默认路由中省略了id参数,则会按预期重定向您的操作。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Site", action = "Index"}
);
答案 1 :(得分:0)
从默认路由中删除ID
OkHttpClient client = builder.build();
或将参数名称从id更改为其他名称。
我希望这会有所帮助。