MVC - @Html.Dropdown 不从 ViewBag 填充值

MVC - @Html.Dropdown not populating values from ViewBag

我是 MVC 的新手。

我正在尝试开发 MVC 网页。我正在尝试使用 @HtmlDropDownList(),它必须使用 ViewBag 从我的 web.config 中填充值。该页面正在使用正确的值呈现,但是在输出屏幕上没有输出。下拉列表在屏幕上仅显示空值。有人可以帮忙吗!

Webconfig 代码:

<add key="ddlStreams" value="Las Vegas|India|Australia"/>

控制器代码:

 public ActionResult Index()
        {
            string reportTypes = ConfigurationManager.AppSettings["ddlStreams"].ToString();
            ViewBag.ddlStreamsVB =  reportTypes.Split('|')
                .Select((value) => new SelectListItem { Value = value.ToString() });
            GetData getdata = new GetData();
            return View(getdata.GetDataFromTable());
        }

这是我的观点:

<div >
    <div class="form-control">
        <div class="row">

            <div class="col-sm-4">
                @Html.Label("Stream name")
            </div>
            <div class="col-md-8">
                @Html.DropDownList("ddlStreamsVB1", ViewBag.ddlStreamsVB as IEnumerable<SelectListItem>)
            </div>
        </div>
    </div></div>

单击“查看源代码”时呈现的 HTML:

<div >
        <div class="form-control">
            <div class="row">

                <div class="col-sm-4">
                    <label for="Stream_name">Stream name</label>
                </div>
                <div class="col-md-8">
                    <select id="ddlStreamsVB1" name="ddlStreamsVB1"><option value="Las Vegas"></option>
<option value="India"></option>
<option value="Australia"></option>
</select>
                </div>
            </div>
        </div>


    </div>

最终输出:( Final output here!!

问题是您没有设置 SelectListItem 的 Text 属性,更新如下:

ViewBag.ddlStreamsVB =  reportTypes.Split('|')
            .Select((value) => new SelectListItem 
            { Value= value.ToString(),
             Text = value 
            });