MVC Viewbag传递列表来查看

时间:2013-03-01 17:01:44

标签: asp.net-mvc-3 razor

这个代码有什么问题?我只是想练习将列表传递给我的观点:

控制器:

public ActionResult About()

    {
        List<string> ListofColors = new List<string>();
        ViewBag.colors.Add("red");
        ViewBag.colors.Add("green");
        ViewBag.colors.Add("blue");

        ViewBag.ListColors = ListofColors;
        return View();

查看:

<ul id="colors">

@foreach (var colors in (List<string>) ViewBag.ListColors) { 
<li>
    @colors
</li>
} 

</ul>

我得到的错误是:CS0103:当前上下文中不存在名称'colors'

3 个答案:

答案 0 :(得分:2)

您没有在控制器操作中将ListColors对象传递到您的viewbag:

 ....
 ViewBag.ListColors = ListofColors;
 return View();
 ....

答案 1 :(得分:1)

控制器代码中缺少该行。

ViewBag.ListColors = colors;

编辑::控制器中的代码如下所示

public ActionResult About()
{
    List<string> ListofColors = new List<string>();
    ListofColors.Add("red");
    ListofColors.Add("green");
    ListofColors.Add("blue");

    ViewBag.ListColors = ListofColors;
    return View();
}

这将解决您的问题。

答案 2 :(得分:1)

List<string> ListofColors = new List<string>();
ListofColors.Add("red");
ListofColors.Add("green");
ListofColors.Add("blue");

ViewBag.ListColors = ListofColors;

将颜色添加到列表中并将listofcolors传递给viewbag