如何用var值在剃刀中显示数据使用foreach?

时间:2014-04-01 10:08:40

标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor

在MVC ASP.NET C#中。 我想用剃须刀查看内容,如下图所示。 链接:

image

在Controller中有这段代码:

public ActionResult View()
{

  ViewBag.data = db.Contents.OrderByDescending(x=>x.dateCreate).Take(4);

  return View();

}

View.cshtml我有代码

foreach(var item in ViewBag.data)
{
    <h2>@item.Title<h2>
    <p>@item.Content<p>
}

它只显示在列中 如何将其显示为图像顶部?

2 个答案:

答案 0 :(得分:2)

你用从控制器设置的类型解析它然后迭代它,Viewbag是一个动态对象

@{
        List<Namespace.Models.Content> contents = ViewBag.data as List<Namespace.Models.Content>
        foreach(var item in contents)
        {
        <div stlye="width:100%;">
        <div style="width:80%;height:20px;">
        <h2>@item.Title<h2>
        </div>
        <div>
        <p>@item.Content<p>
       </div>
       </div>
        }
}

答案 1 :(得分:0)

在视图中,首先定义随机Content以显示在左侧:

var contents = (List<Content>)ViewBag.data;

// Select random Content to show in left. Or select you want, not random
Random rnd = new Random();
int cr = rnd.Next(1, contents.Count);
var randomContent_1_of_them = contents[cr-1];

使用CSS创建像图像一样的样式,并添加到左randomContent_1_of_them项。最后添加到右侧列出其余内容:

foreach(var item in contents)
{
   if(item.Id != randomContent_1_of_them.Id )
   {
     //add here..
   } 
}