【问题标题】:MVC dropdownlist always shows Model.Invalid?MVC 下拉列表总是显示 Model.Invalid?
【发布时间】:2013-12-13 21:28:44
【问题描述】:

表单发布后的`Model.InValid'。错误来自下拉列表。

型号

    [Required]
    [Display(Name = "Country")]
    public List<Countries> Countries { get; set; }

    public string CountryCode { get; set; }

Index.cshtml

<div class="form-group">
  <div class="col-sm-5">
        @Html.LabelFor(model => model.Countries, new { @class = "control-label" })
        <span class="red">*</span>

        </div>
        <div class="col-sm-7">
           @Html.DropDownList("CountryCode", new SelectList(Model.Countries,
           "CountryCode", "CountryDesc"), new { @class = "btn btn-default 
            dropdown-toggle" })

           @Html.ValidationMessageFor(model => model.Countries, "", 
           new { @style = "color:Red" })
        </div>
  </div>

控制器

[HttpPost]
public JsonResult Index(Contact contact)
{
   if (ModelState.IsValid) // Alway is false, because countries prop is null
   {
       //code here
      var result = new { Success = "True", Message = "No Error" };
      return Json(result, JsonRequestBehavior.DenyGet);                           
   }
   else
   {
      var result = new { Success = "False", Message = "Invalid state" };
      return Json(result, JsonRequestBehavior.DenyGet);
   }
}

如何克服这个问题?在帖子中list&lt;courties&gt; Countries 将作为null。

【问题讨论】:

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


    【解决方案1】:

    您需要在列表中而不是选定的值。应该是

    [Display(Name = "Country")]
    public List<Countries> Countries { get; set; }
    
    [Required]
    public string CountryCode { get; set; }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      • 2014-06-05
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      相关资源
      最近更新 更多