从视图(.cshtml)访问viewbag值

时间:2013-04-17 05:44:23

标签: c# asp.net multidimensional-array viewbag kendo-asp.net-mvc

嗨有人可以帮助我如何从我的视图中访问viewbag值(.cshtml) 这是我的样本

var appointments = new[,] { { "4/1/2013", "B'day" }, { "4/2/2013", "Appointment with abc" } };
ViewBag.Appointments = appointments;

现在我想从我的.cshtml文件中访问ViewBag.Appointments值。

有什么想法吗?

3 个答案:

答案 0 :(得分:5)

这是您访问viewbag中数据的方式。请记住正常动态的viewbag数据,并且只能在运行时访问。

Viewbag.appoints = appointments;

在控制器中设置viewbag的值之后。然后转到视图并以这种方式访问​​该数据。

@{
    var results = Viewbag.appoints;
}

然后,您可以遍历结果以使用foreach循环获取单个项目。

@foreach(var item in results)
{
    <p>item.value</p>
}

希望这有帮助

答案 1 :(得分:0)

要遍历此数组并在cshtml中“打印”,请使用以下代码:

@foreach(var appointement in ViewBag.Appointments)
{
   <span>@appointement[0]</span>
   <span>@appointement[1]</span>
}

答案 2 :(得分:0)

要在单个列的视图中打印viewbag的所有值,请使用以下

@{
    for (int i = 0; i < ViewBag.Appointments.GetLength(0); i++)
    {
        for (int j = 0; j < ViewBag.Appointments.GetLength(1); j++)
        { 
           <B>  @ViewBag.Appointments[i, j] </B> <br />
        }
    }    
}

要在视图中将视图包的所有值打印为键值对,请使用以下

@{
    for (int i = 0; i < ViewBag.Appointments.GetLength(0); i++)
    {
           <B>  Key= @ViewBag.Appointments[i, 0], Value= @ViewBag.Appointments[i, 1] </B> <br />
    }    
}

编辑 - 根据以下评论中的要求

您可以在GIT Hub上查看此NGON项目。 注意:在同一页面上,您会找到详细的教程。

帮助页面中的一小段摘录,可帮助您入门。

在控制器中,您可以向ViewBag的动态NGon属性添加任何值:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewBag.NGon.Appointments= new[,] { { "4/1/2013", "B'day" }, { "4/2/2013", "Appointment with abc" } };
        return View();
    }
}

然后在你的脚本函数中,你可以使用它,如下所示

<script type="text/javascript">
    $(function () {

          var appointments= ngon.Appointments;
          // You logic will come here  
    }); </script>

尝试一下,它应该有效。