我有jQuery.Validation 1.15.0安裝在一個ASP.NET MVC 5.2項目,我想了解MVC的基礎知識,並在此刻,驗證模型數據。MVC驗證模型屬性:客戶端驗證沒有發生,只有服務器端
我的印象是,我添加的驗證屬性會生成客戶端驗證,並且直到所有客戶端驗證都通過後纔會發佈回發。但是,雖然驗證通常是有效的,但每次都會發回帖子,即使未提供VendorId的值也是如此。
public class StateAssessmentViewModel
{
[Required(ErrorMessage = "Vendor ID is required")]
[MaxLength(4, ErrorMessage="{0} can not be longer than {1} characters.")]
[Display(Name = "Vendor ID")]
public int VendorId { get; set; }
[Display(Name = "Effective Date")]
[DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}", ApplyFormatInEditMode = true)]
public DateTime EffectiveDate { get; set; }
}
This網站證實,驗證應在客戶端上可以先進行,如果JavaScript中的瀏覽器,Chrome V49被啓用,它是。實際上,「生效日期」字段上有一個可用的jQuery日曆,所以Javascript已經啓用。
我可以尋找什麼來幫助我確定爲什麼驗證在客戶端根本沒有執行?
這裏是產生HTML,當我查看源代碼:
<div class="form-group">
<label class="control-label col-md-2" for="VendorId">Vendor ID</label>
<div class="col-md-10">
<input class="input-validation-error form-control text-box single-line" data-val="true" data-val-maxlength="Vendor ID can not be longer than 4 characters." data-val-maxlength-max="4" data-val-number="The field Vendor ID must be a number." data-val-required="Vendor ID is required" id="VendorId" max="4" min="0" name="VendorId" type="number" value="3333a" />
<span class="field-validation-error text-danger" data-valmsg-for="VendorId" data-valmsg-replace="true">The value '3333a' is not valid for Vendor ID.</span>
</div>
</div>
我使用的引導,也是如此,並試圖過濾掉非數字按鍵的廠商ID字段,但這並沒有影響。我也嘗試過設置最大和最小長度。
我也期待EffectiveDate模型屬性上的DisplayFormat屬性有一些客戶端副作用。它沒。下面是從做「查看源代碼」
<div class="form-group">
<label class="control-label col-md-2" for="EffectiveDate">Effective Date</label>
<div class="col-md-10">
<input class="input-validation-error form-control text-box single-line" data-val="true" data-val-date="The field Effective Date must be a date." data-val-required="The Effective Date field is required." id="txtEffectiveDate" name="EffectiveDate" type="datetime" value="" />
<span class="field-validation-error text-danger" data-valmsg-for="EffectiveDate" data-valmsg-replace="true">The Effective Date field is required.</span>
</div>
</div>
爲什麼客戶端確認沒有發生生成的HTML?
你是否在你的'BungleConfig.cs'類中包含jquery驗證庫?如果是這樣,你是否在你的佈局文件中包含該腳本包?它應該工作給出它產生的HTML – mituw16
就是這樣。我很驚訝,我沒有聽到。讓它成爲答案,我會將其標記爲如此。謝謝! – ChadD
樂意幫忙!舊的第二雙眼睛把戲:) – mituw16