我的选择列表数据:字符串列表
public static class QuestionsSecretes
{
public static readonly IList<String> Liste_Questions_Secretes = new List<String>() {
"Selectionner Une Question",
"Quelle était la couleur de votre première voiture ?",
"Quel est le nom de votre école primaire ?",
"Quel est le nom de votre premier animal de compagnie ?",
"Quel est votre plat préféré ?",
"Quelle était la marque de votre première voiture ?" ,
"Quel est le nom de jeune fille de votre mère ?",
"Quel est le nom de votre commune de naissance ?",
};
}
ViewModel:注释属性
[Required(ErrorMessage = "Veuillez Selectionner votre Question Secrete ")]
public string QuestionSecrete { get; set; }
我也试过这个:
[StringLength(Int32.MaxValue, MinimumLength = 5, ErrorMessage = "Veuillez Selectionner votre Question Secrete")]
*我的观点:我将第一个元素的值设置为string.empty以激活验证,没有机会*
<div class="inputs-block">
<div class="col-md-12 col-sm-12">
<div class="col-md-2 col-sm-2 marg8">Question Secrete : </div>
<div class="col-md-8 col-sm-8" style="padding-left: 10px; padding-right: 10px;">
<label class="selct">
<select name="QuestionSecrete" id="QuestionSecrete">
<% foreach (var item in QuestionsSecretes.Liste_Questions_Secretes)
{%>
<%if (item.Equals(QuestionsSecretes.Liste_Questions_Secretes[0]))
{%>
<option value="<%: String.Empty %>"><%: item %></option>
<%}else if (!String.IsNullOrEmpty(Model.QuestionSecrete) && Model.QuestionSecrete.Equals(item))
{%>
<option value="<%: item %>" selected="selected"><%: item %></option>
<%}else{ %>
<option value="<%: item %>"><%: item %></option>
<%} %>
<%} %>
</select>
</label>
<div class="text-danger">
<%: Html.ValidationMessageFor(m => m.QuestionSecrete)%>
</div>
</div>
</div>
我无法在选择的情况下获得验证消息。 为你的宝贵时间而努力
答案 0 :(得分:1)
不确定为什么要手动定义选择。您可以使用Html.DropDownListFor
扩展方法生成选择控件。
<%: Html.DropDownListFor(model => model.QuestionSecrete, new System.Web.Mvc.SelectList(Model.Liste_Questions_Secretes ), string.Empty, new {@class="form-control"})%>
<%: Html.ValidationMessageFor(model => model.QuestionSecrete)%>
使用上面的扩展名,渲染的html显示带有空白项目的选择控件。此外,如果用户在提交表单时未选择select中的任何项目,则会触发验证。
Model属性定义为
[Required(ErrorMessage = "Veuillez Selectionner votre Question Secrete ")]
public string QuestionSecrete { get; set; }
我创建了this dotnet小提琴来演示你的例子。您可以运行小提琴来查看验证行为。