0

asp.net mvc アプリケーションに単純な ViewModel クラスがあります。

public class DestinationViewModel
{
     [Display(Name = "Country")]
     [some validation attributes]
     public string CountryName { get; set; }

     [Display(Name = "Destination")]
     [some validation attributes]
     public string DestinationName { get; set; }

     public DateTime? DepartureDate { get; set; }

     public DateTime? ArrivalDate { get; set; }
}

コントローラーにデータを渡すと、無効な出発日と到着日にアプリケーションで検証エラーが表示されます。しかし、私はそのような行動を望んでいません。DepartureDateフィールドとフィールドのみで検証を無効にする方法(属性)はありArrivalDateますか?

4

2 に答える 2

2

MVC データ バインダーは、入力フィールドに入力した値を対応する ViewModel タイプに変換しようとします。あなたのシナリオでは、「21321」を渡していますが、これは有効な日付/時刻ではないため、明らかに機能しません。

有効なDateTime文字列値を渡すか、空のままにします (フィールドは null 可能であるため)。

ヒント - 通常、日付フィールドを読み取り専用にして、有効な日付形式を手動で入力する際の問題を回避するために何らかの日付ピッカーを提供することは、ユーザーの観点からは良い考えです。

于 2012-10-22T15:40:26.987 に答える
1

必要なものを書きたい場合は、次の解決策のいずれかを使用するか、使用stringしないでください。DateTime?

于 2012-10-22T15:46:07.873 に答える