2017-07-08 47 views
0

我很新MVC。MVC - @ Html.Dropdown不从ViewBag填充值

我想开发一个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!!

回答

1

的问题是你不设置SelectListItem的文字道具,更新如下:

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