Mvc URL数据注释限制

时间:2014-08-21 14:14:36

标签: asp.net-mvc

在我的模特中我有

[Display(Name = "Information URL")]
[Required(ErrorMessage = "Information Url is required.")]
[Url]
public string INFORMATION_URL { get; set; }

当我将此字符串从create视图传递到网址文本框时,它失败了我的model.isvalid属性:

https://www.google.com.pk/search?q=barcelona&source=lnms&tbm=isch&sa=X&ei=Uv31U5mUBamN7AaztIHoAw&ved=0CAYQ_AUoAQ&biw=1280&bih=899#imgdii=_

当我减少url的长度时,假设,

https://www.google.com.pk/?gws_rd=cr&ei=s_v1U_WSAZHkapL1grAG#q=barcelona

它开始正常工作,是否对url的长度有一些限制?

1 个答案:

答案 0 :(得分:0)

如果你保持你的网址少于2000个字符,那就没问题了。 以下是MSDN所说的内容: Microsoft Internet Explorer的最大统一资源定位符(URL)长度为2,083个字符。 Internet Explorer的最大路径长度为2,048个字符。此限制适用于POST请求和GET请求URL。

您的问题可能是使用非法字符: RFC3986说: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 -._〜:/#[] @ $&放大器;'()* +,; =?!。任何其他字符都需要使用百分比编码(%hh)进行编码。 URI的每个部分都对进行百分比编码的单词需要表示的字符有进一步的限制。

作为最后的手段:如果您在文本框中有第一个括号,请尝试删除它。这会使URL无效,因为您将操作的属性设置为[url]尝试添加消息[Url(ErrorMessage =“请输入有效的网址”)]以查看此操作

以下是有关URL属性的更多信息: URL attribute