2013-03-29 24 views
0

我的控制器返回一個視圖返回下面的列表:如何通過列表循環中由控制器

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

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

    return View(myquery); 
} 

我想知道我怎樣才能遍歷更改爲MyQuery在視圖中顯示其屬性?

有關改進上述代碼的任何建議將會增加優勢。

+0

你有沒有嘗試的Json結果並試圖讀取JQuery中的值? – 2013-03-29 13:37:57

回答

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

改進建議:

  • 在另一種方法/類使用單獨的模型域和視圖
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> 
    } 
    
  • +0

    當我試着你的代碼即時得到這個錯誤:foreach語句不能操作類型網站的變量,因爲它不包含'GenEnumerator'的公共定義 – Sangeeta

    +0

    你的代碼顯示你返回一個對象列表,這些對象是'Website'。這不正確嗎?我將模型更新爲'IEnumerable '。 –

    +0

    在將@model頭部更改爲IEnumerable後,得到以下錯誤::傳入字典的模型項目類型爲'System.Collections.Generic.List'1 [ImportFromExcel.Website]',但此字典需要一個類型的模型項目'System.Collections.Generic.IEnumerable'1 [ImportFromExcel.Models.Website]'。 – Sangeeta

    0

    您可以使用foreach循環:

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