如何在控制器返回的视图中循环遍历列表

时间:2013-03-29 11:48:56

标签: asp.net-mvc-3 razor

我的控制器正在返回以下列表:

public ActionResult Index()
{
    CRMDataContext mycontext=new CRMDataContext();

    var myquery = (from c in mycontext.Websites
                  select c).ToList();

    return View(myquery);
}

我想知道如何在myquery中循环显示其属性?

任何改进上述代码的建议都会增加优势。

3 个答案:

答案 0 :(得分:4)

@foreach(var item in Model){
  ...
}

改进建议:

  • 将您的查询移到另一个方法/类中以进行核心重用
  • 通过使用域和视图的单独模型来分离职责

答案 1 :(得分:0)

首先,您最好将实体映射到模型中并在视图中使用模型。最重要的是,如果您不使用实体中的所有字段。

假设您的实体具有以下结构:

public class Website {
  public string Title {get;set;}
  public string Url {get;set;}
  public string Description {get;set;}
}

在您看来,您可以执行以下操作:

@model IEnumerable<Website> // you may need to fully qualify it or add the namespace in your web.config
@foreach(var o in Model){
  <div>
     <h1><a href="@o.Url">@o.Title</a></h1>
     <p>@o.Description</p>
  </div>
}

答案 2 :(得分:0)

您可以使用foreach循环:

@{
  foreach (var element in Model)
  {
      //Write you html code here.
  }
}