繁体   English   中英

选择验证不起作用ASP.NET MVC4

[英]Select Validation Not Working ASP.NET MVC4

我的选择列表数据:字符串列表

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>

我无法在选择的工作中收到验证消息。 为您的宝贵时间致谢

不知道为什么要手动定义选择。 您可以使用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控件。 此外,如果用户在提交表单时未在select中选择任何项,则将触发验证。

Model属性定义为

[Required(ErrorMessage = "Veuillez Selectionner votre Question Secrete ")]
public string QuestionSecrete { get; set; }

我创建了这个 dotnet小提琴来演示您的示例。 您可以运行小提琴以查看验证行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM