2013-03-29 1 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){ 
    ... 
} 

предложение по улучшению:

  • переместить запрос в другом методе/классе для основного reusage
  • отдельных обязанностей путем использования отдельных моделей для домена и зрения
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 не может работать с переменными типа Website, потому что он не содержит публичной защиты для «GenEnumerator» – Sangeeta

+0

. Ваш код показывает, что вы возвращаете список объектов, а эти объекты являются экземплярами 'Website'. Разве это не так? Я обновил модель до 'IEnumerable '. –

+0

после изменения заголовка @model на IEnumerable im, получившего следующую ошибку:: Элемент модели, переданный в словарь, имеет тип «System.Collections.Generic.List'1 [ImportFromExcel.Website]», но для этого словаря требуется элемент модели типа 'System.Collections.Generic.IEnumerable'1 [ImportFromExcel.Models.Website]. – Sangeeta

0

Вы можете использовать цикл Еогеасп:

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