Razor在发布到共享主机后生成不同的HTML

时间:2013-04-01 17:35:03

标签: c# jquery asp.net-mvc-4 jquery-validate asp.net-mvc-validation

模特课:

public class MyClass 
{ 
    ......
    [MaxLength(9), Required, DisplayName("Social security number")]
    [RegularExpression(@"\d{3}-\d\d-\d{4}", ErrorMessage = "Invalid social security number")]
    public string SocialSecurityNumber { get; set; }
}

剃刀:

@Html.TextBoxFor(model => model.SocialSecurityNumber, new { id = "ssn" })
@Html.ValidationMessageFor(model => model.SocialSecurityNumber)

在Visual Studio 2012 / Chrome中运行时生成的代码。

<input data-val="true" 
  data-val-regex="Invalid social security number" 
  data-val-regex-pattern="\d{3}-\d\d-\d{4}" 
  data-val-required="The Social security number field is required." 
  id="ssn" 
  name="SocialSecurityNumber" 
  type="text" 
  value="" 
  class="input-validation-error">
<span 
  class="field-validation-error" 
  data-valmsg-for="SocialSecurityNumber" 
  data-valmsg-replace="true">
  <span for="ssn" class="" style="">Invalid social security number</span>
</span>

发布到共享主机后生成的代码

<input 
  data-val="true" 
  data-val-regex="Invalid social security number" 
  data-val-regex-pattern="\d{3}-\d\d-\d{4}" 
  data-val-required="The Social security number field is required." 
  id="ssn" 
  name="SocialSecurityNumber" 
  type="text" 
  value="">
<span 
   class="field-validation-valid" 
   data-valmsg-for="SocialSecurityNumber" 
   data-valmsg-replace="true"></span>

为什么通过VS运行的网站有更多生成的HTML代码? (class="input-validation-error">等 )

1 个答案:

答案 0 :(得分:0)

你有两种情况 -

第一个示例显示带有无效输入的文本框,因此css类input-validation-errorSPAN内的消息。

第二个示例显示有效(或否)输入,因此文本框中缺少CSS类而SPAN中没有消息。

在每个网站的表单中放置一个无效的SSN并提交它,看看你是否得到相同的结果。