Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc VB ASP.NET MVC中的循环集合_Asp.net Mvc_Vb.net_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc VB ASP.NET MVC中的循环集合

Asp.net mvc VB ASP.NET MVC中的循环集合,asp.net-mvc,vb.net,asp.net-mvc-3,Asp.net Mvc,Vb.net,Asp.net Mvc 3,我正在使用以下Razor脚本进行循环,但它给了我以下错误: @foreach (var item in ViewBag.Articles) { <div>@item.Title</div> } 末级 公共类BlogDbContext Inherits DbContext Public Property Blogs As DbSet(Of Blog) 末级 编辑: 终于成功了。工作守则如下: @For Each item In ViewBag.Articles

我正在使用以下Razor脚本进行循环,但它给了我以下错误:

@foreach (var item in ViewBag.Articles)
{
    <div>@item.Title</div>
}
末级

公共类BlogDbContext

Inherits DbContext
Public Property Blogs As DbSet(Of Blog)
末级

编辑:

终于成功了。工作守则如下:

@For Each item In ViewBag.Articles
    @<div>@item.Title</div>
Next
ViewBag.Articles中每个项目的
@
@@项目.标题
下一个

如果您已经处于razor代码块中,则不需要
@

@if(ViewBag.Articles.Count>0)
{
   foreach (var item in ViewBag.Articles)
   { 
     <div>@item.Title</div>
   }
}

您的页面代码在VB.Net中,
foreach()
是一个C结构。您只需修改代码即可使用For Each循环的VB构造:

:

Dim列表作为新列表(物品)
list=ViewBag.Articles
If(list.Any())
然后
作为ViewBag.Articles中的文章的每个项目
@项目.标题
下一个
如果结束
答案是:

@For Each item In ViewBag.Articles
    @<div>@item.Title</div>
Next
ViewBag.Articles中每个项目的
@
@@项目.标题
下一个

由于模型绑定器在ASP.NET MVC中的工作方式,在很多情况下,回发列表中每个值的索引都很有帮助

因此,我更喜欢为循环使用索引的(而不是为每个循环使用强类型的):

i=0到Model.Articles.Count-1的
@
Dim curItem=模型物品(一)
@EditorFor(函数(模型)curItem)
下一个
进一步阅读

|

注意:使用
Count
是无效的,因为代码必须循环遍历每条记录。如果您使用
.Any()
,则代码可以循环通过一条记录,并在第一条记录之后短路,因为您要确定的是是否至少有一条记录。(例如,不需要通过循环100k条记录来确定是否至少有一条记录)。我不在代码块中。它一直告诉我“foreach没有定义!”我用我的全部代码更新了这个问题。你使用的是foreach的VB.NET版本吗?查看我的更新答案我正在使用VB ASP.NET MVC。我提供的代码位于Views/Blogs/Details.vbhtml中。我无法应用您提供的VB代码,因为这是一个.vbhtml页面。所以,我试图使用剃须刀,但它告诉我foreach不存在!您是说您不能应用提供的Vb.NET版本,因为您使用的是Vb?对我来说没有意义!我试图在Razor的上下文中使用foreach()。我不能这样做吗?如何在.vbhtml页面中循环浏览这些记录?我想在这里使用Razor,因为这是惯例(我使用的是MVC+Razor)。我已经尝试了您的新代码,但它说,“项未定义。”谢谢。您可能需要在html页面上添加一个using语句…例如@使用博客。我不确定你的对象模型看起来像什么,我尝试使用添加,但不起作用。我在问题中添加了我的博客对象。如果项目未定义,您确定ViewBag.Articles中有对象吗?是“项未定义”。编译或运行时错误?天哪,让我纠正一下,您的错误是使用了错误的编程语言?冬青颤抖,这是一个经典!我会记住一个L-O-L:)Lol这是一个简单的错误:)在任何24小时内使用过多不同类型编程语言的十大标志之一。:)
Inherits DbContext
Public Property Blogs As DbSet(Of Blog)
@For Each item In ViewBag.Articles
    @<div>@item.Title</div>
Next
@if(ViewBag.Articles.Count>0)
{
   foreach (var item in ViewBag.Articles)
   { 
     <div>@item.Title</div>
   }
}
@For Each item As Article In ViewBag.Articles
  <div>@item.Title</div>
Next
@For Each item In ViewBag.Articles
    @<div>@item.Title</div>
Next