gpt4 book ai didi

asp.net-mvc - asp.net mvc 4 - razor View 中的 DataAnnotations 验证(正则表达式)

转载 作者:行者123 更新时间:2023-12-03 06:26:30 27 4
gpt4 key购买 nike

在正则表达式中使用特殊字符时,DataAnnotations 验证器无法在 asp.net mvc 4 razor View 中工作。

型号:

[StringLength(100)]
[Display(Description = "First Name")]
[RegularExpression("^([a-zA-Z0-9 .&'-]+)$", ErrorMessage = "Invalid First Name")]
public string FirstName { get; set; }

Razor View :

@Html.TextBoxFor(model => Model.FirstName, new { })
@Html.ValidationMessageFor(model => Model.FirstName)

不显眼的验证在 View 中呈现为:

<input type="text" value="" tabindex="1" style="height:auto;" name="FirstName" maxlength="100" id="FirstName" data-val-regex-pattern="^([a-zA-Z0-9 .&amp;amp;&amp;#39;-]+)$" data-val-regex="Invalid First Name" data-val-length-max="100" data-val-length="The field FirstName must be a string with a maximum length of 100." data-val="true" class="textfield ui-input-text ui-body-d ui-corner-all ui-shadow-inset valid">

上述 html 中的正则表达式模式未按照模型的正则表达式中指定的方式呈现,即使输入有效数据(Sam's)也会导致错误。

我该如何处理这个问题?

--更新--

我已经按照@Rick的建议更新了代码

[StringLength(100)]
[Display(Description = "First Name")]
[RegularExpression("([a-zA-Z0-9 .&'-]+)", ErrorMessage = "Enter only alphabets and numbers of First Name")]
public string FirstName { get; set; }

查看源代码显示以下内容:

<input data-val="true" data-val-length="The field FirstName must be a string with a maximum length of 100." data-val-length-max="100" data-val-regex="Enter only alphabets and numbers of First Name" data-val-regex-pattern="([a-zA-Z0-9 .&amp;amp;&amp;#39;-]+)" id="FirstName" maxlength="100" name="FirstName" type="text" value="" />

我仍然有同样的问题。

最佳答案

2012 年 7 月 9 日更新 - 看起来这个问题已在 RTM 中修复。

  1. 我们已经隐含了 ^$,因此您无需添加它们。 (包含它们似乎不是问题,但您不需要它们)
  2. 这似乎是 ASP.NET MVC 4/Preview/Beta 中的错误。我打开了一个错误

查看源代码显示以下内容:

data-val-regex-pattern="([a-zA-Z0-9 .&amp;&#39;-]+)"                  <-- MVC 3
data-val-regex-pattern="([a-zA-Z0-9&#32;.&amp;amp;&amp;#39;-]+)" <-- MVC 4/Beta

看起来我们是双重编码。

关于asp.net-mvc - asp.net mvc 4 - razor View 中的 DataAnnotations 验证(正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8244572/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com