Asp.net mvc 3 如何在控制器返回的视图中循环浏览列表

Asp.net mvc 3 如何在控制器返回的视图中循环浏览列表,asp.net-mvc-3,razor,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以在视图中显示其属性 任何关于改进上述代码的建议

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

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

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

    return View(myquery);
}
我想知道如何循环myquery以在视图中显示其属性

任何关于改进上述代码的建议都将成为一项优势

@foreach(var item in Model){
  ...
}
改进建议:

  • 将查询移动到另一个方法/类中以实现核心重用
  • 通过对域和视图使用单独的模型来分离职责
改进建议:

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

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

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

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>
}
@model IEnumerable//您可能需要完全限定它,或者在web.config中添加名称空间
@foreach(模型中的var o){
@o、 描述

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

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

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>
}
@model IEnumerable//您可能需要完全限定它,或者在web.config中添加名称空间
@foreach(模型中的var o){
@o、 描述

}
您可以使用foreach循环:

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

您可以使用foreach循环:

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

当我尝试你的代码时,我发现这个错误:foreach语句不能对Website类型的变量进行操作,因为它不包含“GenEnumerator”的公共定义。你的代码显示你返回了一个对象列表,这些对象是
网站
的实例。对不对?我将模型更新为
IEnumerable
。将@model header更改为IEnumerable后,我收到以下错误::传递到字典中的模型项的类型为“System.Collections.Generic.List
1[ImportFromExcel.Website]”,但此字典需要类型为“System.Collections.Generic.IEnumerable
1的模型项[ImportFromExcel.Models.Website]’。我可以通过这篇文章来解决这个问题:当我尝试你的代码时,我得到了一个错误:foreach语句不能对Website类型的变量进行操作,因为它不包含“GenEnumerator”的公共定义。你的代码显示你返回了一个对象列表,这些对象是
网站
的实例。对吗?我更新了模型为
IEnumerable
。将@model header更改为IEnumerable后,我收到以下错误::传递到字典中的模型项的类型为“System.Collections.Generic.List
1[ImportFromExcel.Website]”,但此字典需要类型为“System.Collections.Generic.IEnumerable”的模型项[ImportFromExcel.Models.Website]”。我可以通过以下帖子来解决:您是否尝试了Json结果并在JQuery中读取了值?您是否尝试了Json结果并在JQuery中读取了值?