处理ASP Net Core路由中的“+”

时间:2017-07-24 10:22:49

标签: asp.net-core routing url-routing

ASP Net Core路由中如何处理'+'? 我有一个像这样定义的路线:

Var2 Var1 group id new_var1 new_var2 1 a b f 1 1 1 2 a c f 2 1 2 3 a d f 3 1 3 4 a e f 4 1 4 5 b a g 5 1 1 6 b c g 6 1 2 7 b d g 7 1 3 8 b e g 8 1 4 9 c a f 9 5 2 10 c b f 10 2 3 11 c d f 11 2 4 12 c e f 12 2 5 13 d a i 13 1 1 14 d b i 14 1 2 15 d c i 15 1 3 16 d e i 16 1 4 17 e a f 17 6 3 18 e b f 18 3 4 19 e c f 19 6 5 20 e d f 20 3 6

函数的参数是string [] words,string type,string search2

使用不同的URL:

  • "/Test/{words}/{type:regex(^(AA|BB|CC)$)}/{search2}" => 404
  • /Test/word1+word2/AA/blablabla =>好的,words = {“word1 word2”}
  • /Test/word1%20word2/AA/blablabla =>好的,words = {“word1”,“word2”}

我不明白404.任何想法为什么会发生?我会用空格翻译'+'。

1 个答案:

答案 0 :(得分:1)

你必须编码一个空格;将空格编码为+是正确的,但仅在查询字符串中;在路径中你必须使用%20。对于+,您可以使用%2b。 (第1.1节)