最近在做一个搜索系统的时候发现了个问题,Mvc 路由中不支持 +号这样的特殊符号,加上就会找不到路由地址,怎么办呢?
图中地址就带有了 特殊符号 + 号,但是浏览器没有去转义,这就很尴尬了。
在一番研究下,发现其实只要需要去配置一下配置文件就可以了
如下配置 :
代码如下:
<security>
<requestFiltering allowDoubleEscaping="true"></requestFiltering>
</security>
在web.config中配置此项:如下
<configuration>
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true"></requestFiltering>
</security>
</system.webServer>
</configuration>
配置完成后,正常访问。
最后成功访问!
2020-01-09 补充
在这里突然发现在我的地址中如果如下出现空格
http://localhost:51897/search/us/ /sort-highest
那么依旧会出现404 的情况后面经过一番研究后发现还可以如下设置解决这个问题,亲测有效
<httpRuntime relaxedUrlToFileSystemMapping="true" />
在webconfig 配置文件中加入如下节点,当然该节点可能已经存在,因此直接添加节点属性也是可以的,如下图所示: