2013-02-04 91 views
0

我需要幾個輸入字段以下驗證:在mvc表單上添加輸入驗證的最佳方法?

01 - Unicode String. No line breaks or tabs. DATA_MAX_LENGTH applies. 
02 - Unicode Memo. Line breaks permitted. No tabs. DATA_MAX_LENGTH applies. 
03 - Non-negative integer, as string. 
04 - Non-negative Money (precision 18,2), as string. 
05 - Date, as string, in the U.S. 4-digit-year format (e.g. 12/31/2012). 
06 - Boolean (aka "Bit", "Yes/No"), as string, with "1" for True, "0" for False. 

是否有提供所有這些驗證(或可擴展),或將使用幾個插件是一個好主意,一個jQuery插件。我正在使用MVC3,我需要它們用於表單上的動態控件。

我的模型的問題(這些問題將用於動態測驗形式創建):

public class Question 
    { 

     public int QuestionID { get; set; } 
     public string QuestionText { get; set; } 
     public Nullable<bool> Required { get; set; } 
     public int DisplayOrder { get; set; } 
     public int StepID { get; set; } 
     public Nullable<int> DataType { get; set; } // validation relate here (1-6) 
     public Nullable<int> ControlType { get; set; } 
     public string Choices { get; set; } 
     public Nullable<int> MaxLength { get; set; } 

    } 
+0

使用[dataannotations](http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.aspx) –

+0

由於存在動態控件,因此無法使用數據註釋。 – Chaka

回答

1

我personlly良好驗證的忠實粉絲 - 這是一個非常強大的選項,允許您定義的驗證規則使用lambda語法。請參閱here以瞭解來自codeplex站點的MVC集成信息,以及here的博客文章,其中詳細介紹瞭如何使用jQuery進行工作。

+0

如果每個項目都需要不同的驗證,這樣做還是有效的,否則驗證將僅應用於模型。例如:如果項目1需要資金,則項目2需要日期,項目3僅需要整數等。 – Chaka

+0

您可以爲模型的每個屬性設置特定的規則,也可以創建可應用於不止一個屬性。因爲它是流利的語法,您還可以將單個屬性的多個規則鏈接在一起,例如:RuleFor(customer => customer.Age).GreaterThan(18).LessThan(30) – Redango

+0

謝謝您指引我朝正確的方向發展,看到這個:http://stackoverflow.com/questions/8084374/conditional-validation-using-fluent-validation – Chaka

相關問題