MVC& jQuery Validate,localhost vs live上的不同HTML输出

时间:2016-04-25 13:45:42

标签: asp.net-mvc validation razor unobtrusive-validation

一个非常简单的例子,有一些奇怪的事情发生。从来没有注意过,但这是我第一次看。

让自己成为一个像以下字段的模型:

[Display(Name = "Full Name")]
[Required(ErrorMessage = "Please enter your Full name")]
[RegularExpression(@"^((\b[a-zA-Z]{2,40}\b)\s*){2,}$", ErrorMessage = "Please enter your first and last name.")]
public string FullName { get; set; }

Razor观点:

<div class="form-group">
@Html.TextBoxFor(m => m.FullName, new { placeholder = "Full Name", @Class = "form-control input-sm" })
@Html.ValidationMessageFor(m => m.FullName)
</div>

当我提交无效表单时,我会收到一条错误消息,但是本地主机上的HTML与服务器上的不同。

Localhost给了我一个span id =&#34; FullName-error&#34;带有一些咏叹调标签。实时服务器为我提供了=&#34; FullName&#34;的范围,没有咏叹调标签。生产中的文件只不过是发布和上传。

我的localhost生成以下内容(这是在chrome调试窗口中检查它):

<div class="form-group">
<input class="form-control input-sm input-validation-error" data-val="true" data-val-regex="Please enter your first and last name." data-val-regex-pattern="^((\b[a-zA-Z]{2,40}\b)\s*){2,}$" data-val-required="Please enter your Full name" id="FullName" name="FullName" placeholder="Full Name" type="text" value="" aria-required="true" aria-invalid="true" aria-describedby="FullName-error">
<span class="field-validation-error" data-valmsg-for="FullName" data-valmsg-replace="true">
<span id="FullName-error" class="">Please enter your Full name</span>
</span>
</div>

实时服务器生成以下内容:

<div class="form-group">
<input class="form-control input-sm input-validation-error" data-val="true" data-val-regex="Please enter your first and last name." data-val-regex-pattern="^((\b[a-zA-Z]{2,40}\b)\s*){2,}$" data-val-required="Please enter your Full name" id="FullName" name="FullName" placeholder="Full Name" type="text" value="">
<span class="field-validation-error" data-valmsg-for="FullName" data-valmsg-replace="true">
<span for="FullName" generated="true" class="">Please enter your Full name</span>
</span>
</div>

任何人都有任何想法或暗示会发生什么事情?

2 个答案:

答案 0 :(得分:1)

在发布Web应用程序时似乎发生了一些变化。

我认为jQueryValidate的版本存在问题,请参阅What is the "generated" attribute seen in some HTML tag used for?

答案 1 :(得分:0)

我将推测您使用的Live服务器在某种程度上与您的localhost不同。问题可能是,实时服务器使用的语言版本不同,或者不包含您认为应该使用的某些软件包。

一个例子是使用FastCGI的应用程序,很多服务器都有它,但并非所有层都有它。因此,您需要检查以确保它在设置中启用,或者您所需的版本是否在您使用的任何主机上。