我正在使用下面的代码来生成完全合格的url
并将其传回为json
用于重定向。
returnUrl = Url.Action("ActionName", "Controller",
new RouteValueDictionary(new { type= returnUrl }),
HttpContext.Request.Url.Scheme,
HttpContext.Request.Url.Authority);
returnUrl
最初会有一个值type1
or type2
这就是为什么我将类型指定为returnUrl
然后用生成的值替换它的值url
,但它生成
http://localhost:49518:49518/Controller/ActionName?type=type1
//^^^^^ Extra port added
并附加端口号49518
两次。可能的解决方案是什么?为什么会发生这种情况?
只需更换HttpContext.Request.Url.Authority
with HttpContext.Request.Url.Host
.
因为 :
-
HttpContext.Request.Url.Authority
返回域名系统 (DNS) 主机名或 IP 地址,并且端口号对于服务器。
-
HttpContext.Request.Url.Host
返回服务器的 DNS 主机名或 IP 地址。
在您的代码中,您正在使用重载Url.Action
接受主机名而不是包含端口的权限。
通过此修复,您的端口将自动添加,并且不会出现端口重复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)