我们正在从telerik Q3 2010 asp.net mvc扩展升级到2011年第一季度。之前,在网格编辑中,禁用值未在表单中发布,但现在它们被发布为空值。我问telerik团队他们确认这是预期的行为,他们将把所有模型发回给控制器。令我困扰的是,一个字段的空值使得Modelstate无效,即使该字段可以为空并且我没有用Required属性进行装饰。这是我的视图模型
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
}
模型中的PersonalClinic标志指示将禁用和隐藏哪个输入(诊所名称或HospitalID)。
现在,即使他们在检查了personalClinin复选框时为HospitalID发布了空值,它也完全有意义,在控制器端,HospitalID应该接受空值,因为它可以为空并且不是必需的,但实际上我收到了
“值”null“对于ModelstateDictionary中的”HospitalID“无效。我不知道是什么让它以这种方式表现。在这方面的任何帮助都非常感谢
感谢
答案 0 :(得分:1)
这被认为是一个错误,将在即将发布的版本中解决。