【问题标题】:DropDownListFor default selected item from modelDropDownListFor 从模型中默认选择的项目
【发布时间】:2014-09-18 20:44:07
【问题描述】:

我有一个绑定到模型成员的 DropDownListFor 以及一个可供选择的项目列表。与该成员的绑定有效,但我似乎无法弄清楚页面加载时如何显示模型的当前值。

查看

@Html.DropDownListFor(model => model.MethodofPayment, (List<SelectListItem>)ViewBag.statuses)

控制

List<SelectListItem> statuses = new List<SelectListItem>();
statuses.Add(new SelectListItem { Text = "Approved", Value = "Approved" });
statuses.Add(new SelectListItem { Text = "Declined", Value = "Declined" });
statuses.Add(new SelectListItem { Text = "Pending", Value = "Pending" });
ViewBag.ClaimStatus = statuses;

添加 optionLabel 参数不起作用并返回 null 值,并且传入 SelectListItem 作为 optionLabel 参数也不起作用。

@Html.DropDownListFor(model => model.MethodofPayment, (List<SelectListItem>)ViewBag.methodofpayment, model.MethodOfPayment)

如果他们不更改列表项,我希望页面提交相同的值。

编辑:
谢谢各位,应该是名字冲突。 我有点搞砸了我的问题,因为我有两个下拉列表,我一定是复制了错误的。

更改后的代码:
控制器:

List<SelectListItem> statuses = new List<SelectListItem>();
statuses.Add(new SelectListItem { Text = "Approved", Value = "Approved" });
statuses.Add(new SelectListItem { Text = "Declined", Value = "Declined" });
statuses.Add(new SelectListItem { Text = "Pending", Value = "Pending" });
ViewBag.ClaimStatuses = statuses;

查看:

@Html.DropDownListFor(model => model.ClaimStatus, (List<SelectListItem>)ViewBag.ClaimStatuses)

把它改成复数就可以了。

【问题讨论】:

  • 您是在模型绑定到视图之前在模型中设置MethodofPayment 的值还是为空?

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


【解决方案1】:

有时您可能会为不同的控件/变量使用相同的名称,并且可能会相互冲突。

在您的情况下,模型属性名称 MethodofPayment 和您的 ViewBag 名称 methodofpayment 会导致冲突。

尝试将您的 ViewBag 名称更改为 ViewBag.paymentmode 并尝试一下。

@Html.DropDownListFor(model => model.MethodofPayment, (List<SelectListItem>)ViewBag.paymentmode)

【讨论】:

    【解决方案2】:

    确保您只有一个名为“model.MethodofPayment”的控件。

    @Html.DropDownListFor(model => model.MethodofPayment, (List<SelectListItem>)ViewBag.methodofpayment)
    

    在您的 post 方法中使用您视图中的名称

      [HttpPost]
         public ActionResult yourAction(classname ClassModel)
        {
        }
    

    确保视图中的名称“ClassModel”相同

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-03
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多