在视图中使用viewbag

时间:2016-02-02 10:35:16

标签: javascript c# asp.net-mvc asp.net-mvc-3

在我的Controller中,我创建了一个名为OptionList的viewbag属性,其中我创建了一个字符串,其中包含了一些我想在视图中使用的selectpicker的选项。

foreach(Uren_IssueType type in IssueType_List)
{
    optionList = optionList + "<option>" + type.TypeNaam + "</option>";
}
ViewBag.OptionList = optionList;

因为它是一个动态创建的selectpicker(它是网格中每一行的一部分,可以在其中添加和删除行),我想将此选项列表添加到创建selectpicker的字符串中。

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

但是这段代码确实有用,只显示选项。它显示一个空的下拉列表。有人可以帮我解决如何从viewbag字符串创建这个selectpicker列表的问题吗?

2 个答案:

答案 0 :(得分:0)

您需要遍历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>

ViewBag的创建方式如下:

List<string> items=new List<string>();
foreach(Uren_IssueType type in IssueType_List)
{
    items.Add(type.TypeNaam)   
}
ViewBag.OptionList = items;

答案 1 :(得分:0)

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

@Html.Raw(@ViewBag.OptionList)

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