当参数的空格编码为+
而不是%20
时,我的服务器返回404错误。我不明白为什么。
路线的格式为
[Route("/Search/PRM1/{prm1}/PRM2/{prm2}/PRM3/{prm3}")
我的第一个问题是如何让服务器理解这种URL?
https://example.com/Search/PRM1/prm1%20value/PRM2/prm2+value/PRM3/prm3%20value
我的第二个问题是如何使用+
而不是%20
自动生成更易于阅读的网址?关于SEO有区别吗?
在cshtml中在服务器端生成URL:
<a href="/Search/PRM1/@prm1/PRM2/@prm2/PRM3/@prm3">link</a>
使用prmX变量&#34;清除&#34;文字(包括空格)。使用+
代替@System.Net.WebUtility.UrlEncode(prm2)
@prm2
网址
我已经检查了下面的链接,但该解决方案似乎不适用于ASP.Net Core: WebAPI route 404's when there is a trailing space in the URL
答案 0 :(得分:0)
如果您要提供搜索服务或可能涉及特殊字符的字段或+
,/
,\
,Query String
,最好发送它作为[Route("/Search/PRM1/{prm1}/PRM2/{prm2}/PRM3?prm3=your value here")
{{1}}