首页 > 解决方案 > MVC 下拉列表未使用 ViewBag 显示所选值

问题描述

我已经使用 Banks 表填充了 ViewBag.BankNames

ViewBag.BankNames = new SelectList(db.Banks, "BankId", "BankName", applicationSettings.BankId);

其中 applicationSettings.BankdId 具有我需要在下拉列表中显示为选定值的值,然后将 applicationSetting 模型对象传递给查看。

在我的视图中,我使用了 ViewBag 之类的

@Html.DropDownListFor(model => model.BankId, ViewBag.BankNames as SelectList, "Select Bank", htmlAttributes: new { @class = "form-control" })

它将向我显示包含银行名称的所有值的下拉列表,但选定的值是Select Bank而不是我在 ViewBag 中设置为选定值的值?

标签: c#model-view-controllerviewbag

解决方案


您可以将 applicationSettings.BankId 分配给模型属性的 BankId 并检查..

您正在绑定 @Html.DropDownListFor(model => model.BankId, ViewBag.BankNames as SelectList, "Select Bank", htmlAttributes: new { @class = "form-control" }) 但在 model.BankId 中为零..

在返回查看之前分配 Model.BankId = applicationSettings.BankId

In Controller

public ActionResult Index()
        {

            var banks = new List<Banks>()
            {
                new Banks()
                {
                    BankId =1,
                    BankName = "Bank 1"
                },

                new Banks()
                {
                    BankId =2,
                    BankName = "Bank 2"
                }
            };


            var list = new SelectList(banks, "BankId", "BankName");
            

            ViewBag.Banks = list;

            var modelBanks= new Banks();
            modelBanks.BankId = 2;

            return View(modelBanks);
        }


In View
@model Banks
@using WebApplication3.Models
@Html.DropDownListFor(model => model.BankId, ViewBag.Banks as SelectList,"Select Bank")






推荐阅读