【问题标题】:Dropdownlist value always returns zero in asp.net mvc下拉列表值在 asp.net mvc 中始终返回零
【发布时间】:2017-12-07 01:01:32
【问题描述】:

这是模型类的示例

[Required(ErrorMessage = "Department is required")]
[Display(Name = "Department")]
public int SelectedValue { get; set; }


[Required(ErrorMessage = "Department is required")]
[Display(Name = "Department")]
public List<Department> RoleList { get; set; }

这是风景

<div class="col-md-10">
    @Html.DropDownListFor(m => m.RoleList, new SelectList(Model.RoleList,"ID", "RoleName","1"), "Please Choose a Department", new { htmlAttributes = new { @class = "form-control"} })
    @Html.ValidationMessageFor(model => model.SelectedValue, "",new { @class = "text-danger"})
</div>

该列表完全从数据库中填充。现在当我选择列表中的项目时,选择值必须发送到控制器

public async Task<ActionResult> Register(RegisterViewModel model)
{
    int Selectedvalue = model.SelectedValue;
    if (ModelState.IsValid && (model.SelectedValue).ToString() != "0")
    {

这里我做了一个选择

错误

【问题讨论】:

  • 我们看不到您的错误。
  • @MattSpinks ,已经解决了

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


【解决方案1】:

你应该改变它

@Html.DropDownListFor(m => m.RoleList, new SelectList(Model.RoleList,"ID", "RoleName","1"), "Please Choose a Department", new { htmlAttributes = new { @class = "form-control"} })

@Html.DropDownListFor(m => m.SelectedValue, new SelectList(Model.RoleList,"ID", "RoleName","1"), "Please Choose a Department", new { htmlAttributes = new { @class = "form-control"} })

DropDownListFor 的第一个参数应该是模型中的选择值。在您的情况下,此属性是 Model.SelectedValue 而不是 Model.RoleList

【讨论】:

  • 此外,您可以从 RoleList 中删除 Required 属性,因为它没有发布到服务器和 Display 属性,因为正在显示该属性,您正在显示 SelectedValue 的属性
猜你喜欢
  • 1970-01-01
  • 2017-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多