查看
@Html.DropDownListFor(m => m.InsertCustomer.CountryID, Model.lstCountry, new { @class = "DropDownListFor" })
@Html.ValidationMessageFor(m =>m.InsertCustomer.CountryID)
查看模型
[Required(ErrorMessage = "Please Select Country")]
public string CountryID { get; set; }
为下拉列表创建列表的方法
public IEnumerable<SelectListItem> getCountry()
{
DNC_DAL.clsCustomerMaster _objDalUser = new DNC_DAL.clsCustomerMaster();
DataTable dtCountry = new DataTable();
dtCountry = _objDalUser.GetCountry();
List<SelectListItem> lstCountry = new List<SelectListItem>();
SelectListItem firstOption = new SelectListItem() { Text = "---Select One---" };
lstCountry.Add(firstOption);
foreach (DataRow drCountry in dtCountry.Rows)
{
SelectListItem Country = new SelectListItem() { Text = drCountry["DCM_DESC"].ToString(), Value = drCountry["DCM_ID"].ToString() };
lstCountry.Add(Country);
}
return lstCountry;
}
控制器
public ActionResult wfrmCustomerMaster()
{
Models.clsCustomerMaster CustomerModel = new Models.clsCustomerMaster();
IEnumerable<SelectListItem> strCountry = null;
strCountry = CustomerModel.getCountry();
CustomerModel.lstCountry = strCountry;
return View(CustomerModel);
}
除了下拉验证之外,所有其他验证(未在问题中发布)在页面上完美运行,我想知道为什么?
答案 0 :(得分:3)
您的代码正在添加第一个选项
<option>---Select One---</option>
没有value=""
属性,这意味着如果您选择它,<select>
元素的值将为"---Select One---"
,这是有效的(即它不是{{1} }或空null
)。
相反,要生成具有string
值的标签选项,请使用接受null
的{{3}},这将生成第一个选项
optionLabel
并删除生成此选项的<option value="">---Select One---</option>
中的代码