Javascript 在视图中使用viewbag

Javascript 在视图中使用viewbag,javascript,c#,asp.net-mvc,asp.net-mvc-3,Javascript,C#,Asp.net Mvc,Asp.net Mvc 3,在我的控制器中,我创建了一个名为OptionList的viewbag属性,在该属性中,我创建了一个字符串,其中包含一些我想在视图中使用的选择器选项 foreach(Uren_IssueType type in IssueType_List) { optionList = optionList + "<option>" + type.TypeNaam + "</option>"; } ViewBag.OptionList = optionList; foreach

在我的控制器中,我创建了一个名为OptionList的viewbag属性,在该属性中,我创建了一个字符串,其中包含一些我想在视图中使用的选择器选项

foreach(Uren_IssueType type in IssueType_List)
{
    optionList = optionList + "<option>" + type.TypeNaam + "</option>";
}
ViewBag.OptionList = optionList;
foreach(发布类型列表中的Uren\u发布类型)
{
optionList=optionList+“”+type.TypeNaam+“”;
}
ViewBag.OptionList=OptionList;
因为它是一个动态创建的selectpicker(它是网格中每一行的一部分,在网格中可以动态添加和删除行),所以我想将此optionlist添加到创建selectpicker的字符串中

<td width=\"125\">
    <select class=\"form-control\" id=\"selectpicker\" name='selectpicker'>
         @ViewBag.OptionList
    </select>
</td>

@ViewBag.OptionList

但此代码仅在不显示选项时有效。它显示一个空的下拉列表。有人可以帮助我如何从viewbag字符串创建此选择器选择器列表吗?

您需要遍历viewbag中的项目。 比如:

<td width=\"125\">
    <select class=\"form-control\" id=\"selectpicker\" name='selectpicker'>
    @foreach(var item in ViewBag.OptionList)
    {
        <option value="@item">@item</option>
    }         
    </select>
</td>

@foreach(ViewBag.OptionList中的var项)
{
@项目
}         
而ViewBag的创建方式应如下所示:

List<string> items=new List<string>();
foreach(Uren_IssueType type in IssueType_List)
{
    items.Add(type.TypeNaam)   
}
ViewBag.OptionList = items;
List items=newlist();
foreach(发布类型列表中的Uren_发布类型)
{
items.Add(type.TypeNaam)
}
ViewBag.OptionList=项目;

要从字符串呈现Html,请使用
Html.Raw

@Html.Raw(@ViewBag.OptionList)

但是,Asp.Net MVC更适合这样做的方式是(或DropDownListFor)从模型中呈现某些内容,而不是在字符串中构建HTML。

为什么要使用viewbag?阅读以下内容:为什么不使用SelectListItem列表并将列表存储在ViewBag中?然后将ViewBag绑定到dropdownlist。我对原始行执行了此操作。但是我使用字符串来动态添加新行。如果使用字符串,这将不起作用,因为在视图中使用这样的viewbag会导致语法错误。但是我们需要帮助