簡體   English   中英

ASP.Net MVC:位不同類型的條件驗證服務器端和客戶端

[英]ASP.Net MVC:Bit different kind of conditional validation server side and client side

我處於必須實現位有線條件驗證服務器端和客戶端端的情況。 故事如下

a)假設我有一個下拉菜單

b)兩個復選框,

c)一個單選按鈕列表

d)一個復選框列表

e)幾個文本框和

f)保存按鈕

1)我的要求是,當用戶從下拉列表中選擇一個數據並提交表單時,除兩個復選框外,所有控件的驗證消息都會顯示。

2)當用戶從下拉列表中選擇一項數據並從2個復選框中選擇一個並提交表單時,將顯示除復選框列表以外的所有控件的驗證消息。

我知道要求有點有線,但是我必須做類似的事情。 因此,請給我建議,例如如何使用自定義驗證在mvc中解決該問題。

如何使用ValidationAttribute and IClientValidatable interface在客戶端和服務器端實現此驗證。

謝謝

假設您使用的是非侵入式驗證,則可以使用其他方法。 可以在客戶端/服務器上啟用和禁用某些字段的驗證。

對於ActionMethod中的服務器端,您可以執行以下操作:

' Check if any of the two CheckBoxes are not checked, then
  ModelState.Remove("CheckBox1")
  ModelState.Remove("CheckBox2")

' Else
  ModelState.Remove("CheckBoxList")

要禁用客戶端非侵入式驗證(請參閱https://stackoverflow.com/a/12179373/1361888 ),

 $(function() {
     var settngs = $.data($('form')[0], 'validator').settings;
     settngs.ignore = ".ignore";
 });

因此,您基本上可以在客戶端和服務器端都啟用或禁用對字段的驗證。 這是簡單的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM