Telerik Q3 2010 asp.net mvc 拡張機能を Q1 2011 にアップグレード中です。以前は、グリッド編集で無効な値はフォームに投稿されませんでしたが、現在は null 値として投稿されています。Telerik チームに問い合わせたところ、これは予期された動作であり、すべてのモデルをコントローラーにポストする予定であることが確認されました。
私を悩ませているのは、フィールドが null 可能で、 Required 属性で装飾していないにもかかわらず、フィールドの null 値が Modelstate を無効にしていることです。
ここに私のビューモデルがあります:
public class VMDoctorHospital
{
[HiddenInput(DisplayValue = false)]
public int DrHospitalID { get; set; }
[HiddenInput(DisplayValue = false)]
public int DoctorID { get; set; }
[DisplayName("Personal Clinic?")]
public bool PersonalClinic { get; set; }
[DisplayName("Clinic Name")]
public string ClinicName { get; set; }
[DisplayName("Hospital"), UIHint("IntStrEditor")]
public int? HospitalID { get; set; }
[DisplayName("Doctor's Position")]
//ohter fields
}
Model PersonalClinic フラグで、どの入力 (クリニック名または HospitalID) を無効にして非表示にするかを指定します。
ここで、personalClinin チェックボックスがオンになっているときに HospitalID に null 値を投稿している場合でも、それは完全に理にかなっていて、コントローラー側では HospitalID は null 値を受け入れる必要があります。 ModelstateDictionary の HospitalID には無効です。
何がこのように動作するのかわかりません。