2013-10-24 314 views
0

我的應用程序是MVC所需的電子郵件字段3使基於下拉列表值選擇

我有我的觀點一個ddlfor列出兩個值A和B. 有一個在同一視場多電子郵件 只有當ddl的選定值爲'A'時,我才需要將此電子郵件字段設置爲必填或必填字段。並且無需驗證所選值是否爲'B'。 我如何實現這個場景.PLsss幫助我

現在在我的模型中,電子郵件是必填字段。我需要改變它嗎? 如果我改變,我會使電子郵件強制性的,而不是基於ddl值強制?

請指教我。 在此先感謝, Priya

回答

1

您可以在JQuery中做到這一點。在Jquery中檢查下拉的值,如果'A'和電子郵件字段爲空返回false,以便表單不會被提交。

在服務器端而不是使用數據註釋你可以有一個自定義的方法來驗證。

0

IValidatableObject界面允許您在模型級進行驗證:

public class MyModel : IValidatableObject 
{ 
    public string Email { get; set; } 
    public string SelectedValue { get; set; } 

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
    { 
     if (SelectedValue == "A" && string.IsNullOrEmpty(Email)) 
     { 
      yield return new ValidationResult("Email address is required.", new [] { "Email" }); 
     } 
    } 
} 

這將突出電子郵件字段,如果在下拉列表中選擇的值是「A」。

+0

但我怎麼能在選定的索引更改中調用此選項? – user2439019

+0

當您提交表單時,這是爲了在服務器端工作。如果需要在選擇更改時添加警告消息,則在客戶端,可能需要在jQuery中執行此操作,如:$(「#myDropDownList」)。change(function(){/ * test if mandatory然後顯示警告消息* /});' –

+0

感謝Reda,在客戶端我實現了警告圖像的基礎上使用jQuery的ddl值的外觀如你所說。但是,請你詳細告訴我,如果你不介意這是怎麼回事可以在服務器端實現,我怎樣才能在模型中編寫自定義的vlaidation類?那麼我怎樣才能調用這個類,我怎樣才能將ddl選擇的值傳遞給該類,以及如何返回val; idation結果基於選定的價值..請幫我 – user2439019

相關問題