0

我在審覈和一致性問題,當涉及到某些視圖中的客戶端驗證錯誤。該視圖由多個(子)部分視圖組成,基本上是在許多地方使用MVC /剃刀的Html.Textbox()Html.TextBoxFor()的表單。在一些局部視圖中,我需要輸入不是強類型的,因此只有TextBox(),在這些情況下,驗證不會觸發輸入框的客戶端樣式。MVC Html.TextBox(不適用)客戶端驗證樣式

我知道ModelState無效,並且Html.ValidationSummary()顯示了來自由TextBox()TextBoxFor()觸發的驗證錯誤的正確錯誤消息。然而,只有TextBoxFor()才能獲得該類:「輸入驗證錯誤」

問題:如何在發生錯誤時將我的TextBox()的紅色變爲紅色? (簡單的說)。我認爲有一個缺少JQuery驗證觸發的值或屬性。

代碼:

作品:@Html.TextBoxFor(x => x.Owner, new { @class = "form-control" })

並不:@Html.TextBox(name, Model.Name, new { @class = "form-control" })

HTML輸出

作品:<input class="input-validation-error form-control" data-val="true" data-val-required="Input is required." id="Owner" name="Owner" type="text" value="">

並不:<input class="form-control" id="Applicants_1__Name" name="Applicants[1].Name" type="text" value="">

+0

重置你試圖添加數據-VAL屬性到TextBox代碼例如 @ Html.TextBox(name,Model.Name,new {@class =「form-control」,data-val =「true」,data-val-required =「需要輸入」}) – Whiplash450 2015-02-05 15:59:41

+0

是的,除了「 data-val =「true」「,帶連字符,導致無法解析符號,但」data_val =「true」,data_val_required =「Input is required」也不起作用 – skepnaden 2015-02-05 16:09:49

+0

data-val- *屬性爲因爲'name'的值不是你模型中的一個屬性,所以它不會被讀取,所以它們不會被添加!使用強類型助手(如果你認爲你不能,那麼你做錯了) – 2015-02-05 21:57:53

回答

0

就我個人而言,我只是在jquery中進行驗證,然後你可以自定義任何你需要的。

然後你可以設置輸入文本框的css容易變紅;

$("#myInput").css("border", "1px solid red"); 

和使用

$("#myInput").css("border", "none") 
+0

我已經有一個20 +輸入的表單,完全驗證服務器端和所有的錯誤消息通過。TextBoxFor()獲得樣式,而其他人則沒有。當聲明兩個禁用客戶端樣式的觸發器時,只需要知道本質區別。 – skepnaden 2015-02-05 16:22:18

+0

好的。只是出於興趣,你不得不使用TextBox而不是TextBoxFor ..的原因是什麼? – Whiplash450 2015-02-05 16:31:41

+0

不能強制鍵入,因爲它有一個與之綁定的唯一標識符。我需要在具有相同輸入類型的幾個子元素/對象之間進行分離,因此在上面的代碼中呈現var「name」:id =「Applicants_1__Name」name =「Applicants [1] .Name – skepnaden 2015-02-05 16:44:43