【问题标题】:Access viewbag values from view (.cshtml)从视图 (.cshtml) 访问 viewbag 值
【发布时间】:2013-04-17 05:44:23
【问题描述】:

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

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

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

有什么想法吗?

【问题讨论】:

  • 你想在控制器的哪里访问这些值?
  • 你有没有尝试过,你可以像从二维数组中读取一样从 Viewbag 中读取。
  • @{ var 约会 = ViewBag.Appointments; }
  • 是的,我试过了。只是我想显示像 ViewBag.Appointments.length 这样的数组的总长度,但它没有给出任何结果。当我阅读 ViewBag.Appointments[0,0] 时,它正在显示结果。但我想遍历它。我该怎么办?

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


【解决方案1】:

这就是您访问 ViewBag 中数据的方式。请记住 ViewBag 数据通常是动态的,只能在运行时访问。

ViewBag.Appointments = appointments;

在控制器中设置 ViewBag 数据后,在视图中检索它,如下所示。

@{
    var appointments = ViewBag.Appointments;
}

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

@foreach(var appointment in appointments)
{
    <p>@appointment.value</p>
}

希望这会有所帮助!

【讨论】:

  • 应该是@item.value,并且是ViewBag,名称区分大小写。
【解决方案2】:

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

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

【讨论】:

  • 我收到对象引用错误。我想在我的函数中访问这个 viewbag 值。这是我的代码,
【解决方案3】:

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

@{
    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 />
        }
    }    
}

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

@{
    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>

试试看,应该可以的。

【讨论】:

  • 您好罗穆卢斯,感谢您的回复。我想在我的函数中循环这些值。它不接受。您能帮我在下面的示例中如何使用此代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-19
  • 2012-04-17
  • 2022-01-22
  • 2012-10-09
  • 1970-01-01
相关资源
最近更新 更多