【问题标题】:Select Validation Not Working ASP.NET MVC4选择验证不工作 ASP.NET MVC4
【发布时间】:2015-10-27 17:53:32
【问题描述】:

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

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 助手 - @Html.DropDownListFor() 或手动添加客户端验证使用的所有适当的 data-val 属性。

标签: c# validation asp.net-mvc-4


【解决方案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 显示一个带有空白项的选择控件。此外,如果用户在提交表单时未在选择中选择任何项目,则会触发验证。

Model 属性定义为

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

我创建了this dotnet fiddle 来演示您的示例。您可以运行 fiddle 来查看验证行为。

【讨论】:

  • 感谢@user1672994 使用助手解决了问题
猜你喜欢
  • 1970-01-01
  • 2012-08-23
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多