当我们从url传递时,为什么%2020对长数据类型有效

时间:2019-05-14 04:53:23

标签: asp.net-mvc url routing urlencode

我已经按照如下步骤在控制器中创建了.net mvc操作

public ActionResult Action(long No)
{
        return View();
}

现在我正在运行项目并点击以下网址

http://localhost:64478/Home/Action/10

它很简单,就是

现在我正在访问网址http://localhost:64478/Home/Action/%1010

在这种情况下,它返回无效的请求

现在我正在访问网址http://localhost:64478/Home/Action/%2020

在这种情况下,它可以正常工作,但在控制器中,它给我的值为20

所以,即使我使用数据类型的时间很长,为什么会这样,为什么呢? 接受

1 个答案:

答案 0 :(得分:0)

Url中的

%20被视为空白的编码值。因此,默认的模型联编程序会忽略空格,并将值“ 20”绑定到控制器中的参数。

另一方面,%10是一个不同的字符,不会被忽略,尝试将带有非数字字符前缀的10绑定到long变量将导致错误。