0

私のコントローラーは次のリストを返します:

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

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

    return View(myquery);
}

myquery をループしてそのプロパティをビューに表示するにはどうすればよいでしょうか??

上記のコードを改善するための提案は、利点が追加されます。

4

3 に答える 3

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

改善提案:

  • コアの再利用のためにクエリを別のメソッド/クラスに移動します
  • ドメインとビューに別々のモデルを使用して責任を分離する
于 2013-03-29T11:54:52.310 に答える
0

foreach ループを使用できます。

@{
  foreach (var element in Model)
  {
      //Write you html code here.
  }
}
于 2013-03-29T11:57:51.103 に答える
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>
}
于 2013-03-29T11:56:43.813 に答える