一个非常简单的例子,有一些奇怪的事情发生。从来没有注意过,但这是我第一次看。
让自己成为一个像以下字段的模型:
[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>
任何人都有任何想法或暗示会发生什么事情?
答案 0 :(得分:1)
在发布Web应用程序时似乎发生了一些变化。
我认为jQueryValidate
的版本存在问题,请参阅What is the "generated" attribute seen in some HTML tag used for?
答案 1 :(得分:0)
我将推测您使用的Live服务器在某种程度上与您的localhost不同。问题可能是,实时服务器使用的语言版本不同,或者不包含您认为应该使用的某些软件包。
一个例子是使用FastCGI的应用程序,很多服务器都有它,但并非所有层都有它。因此,您需要检查以确保它在设置中启用,或者您所需的版本是否在您使用的任何主机上。