我正在使用mvc开发一个c#项目。我有一个创建表单,在其中我有一个下拉列表。下拉字段是必填字段(在我的模型中)。但是当我没有从下拉列表中选择一个值时,请点击"创建"按钮,我没有验证消息(即使我的模型类中有一个)。这是我的模特:
[Required(ErrorMessage = "This field is required.")]
public int MappingType { get; set; }
以下是我的观点:
@Html.DropDownListFor(m => m.id, new SelectList(ViewBag.mappingTypes, "Value", "Text"), "Choose")
@Html.ValidationMessageFor(model => model.MappingType, "", new { @class = "text-danger" })
我不知道我在哪里弄错了..
答案 0 :(得分:1)
这种情况正在发生,因为您正在为模型上的另一个属性生成下拉列表。即您正在为id
创建下拉列表,而验证邮件是MappingType
。为了使其工作,控制(在您的情况下为下拉列表)和验证消息应该是相同的属性。所以改变以下行
@Html.DropDownListFor(m => m.id, new SelectList(ViewBag.mappingTypes, "Value", "Text"), "Choose")
到
@Html.DropDownListFor(m => m.MappingType, new SelectList(ViewBag.mappingTypes, "Value", "Text"), "Choose")
答案 1 :(得分:-1)
您可以使用viewdata绑定下拉列表。
@Html.DropDownListFor(m => m.id,(SelectList)ViewData["mappingTypes"],"Choose")
@ Html.ValidationMessageFor(model => model.MappingType,"",new {@class =" text-danger"})