2012-04-18 3 views

ответ

15
public ActionResult Index(int id) 
{ 
    var drafts = db.Drafts.Where(d => d.PublicationId == id).ToList(); 
    return View(drafts); 
} 

или если вы хотите одного проекта (сог идентификатор обычно уникален):

public ActionResult Index(int id) 
{ 
    var draft = db.Drafts.SingleOrDefault(d => d.PublicationId == id); 
    return View(draft); 
} 
+0

+1: Я не понимал, что у «SingleOrDefault» были перегрузки. –

2

Вы знакомы с лямбды? В lambda вашего предложения where вы можете указать любое свойство, которое хотите.

return View(db.Drafts.Where(d => d.SomeProperty == value)); 

Я хотел бы также рассмотреть вопрос о создании данных вашего доставляя страницы в модели, а не делать модель будет фактическая модель ПОКО. Модель MVC управляет дисплеем, модель POCO управляет вашими данными.

+0

Спасибо. Это также полезный ответ. – alockrem

+1

Тогда как насчет того, чтобы выставить его? :) – mccow002

4

Я не уверен, что ваш Draft класс выглядит, но давайте представим, что это выглядит примерно так:

public class Draft 
{ 
    public int Id { get; set; } 
    public int PublicationId { get; set; } 
    public string Name { get; set; } 
} 

Вы можете написать запрос следующим образом:

return View(db.Drafts.Where(d => d.Name == "foo")); 

Это будет только return Черновики, которые имели имя «foo». Это само по себе, вероятно, не полезно. Вы бы, скорее всего, хотят контролировать это путем передачи данных в контроллер (строка запроса, форма стоимости, стоимости маршрута и т.д.):

public ActionResult Index(int id, string filter) 
{ 
    return View(db.Drafts.Where(d => d.Name == filter)); 
} 

Или вы можете фильтровать по нескольким свойствам:

public ActionResult Index(int id, string filter) 
{ 
    return View(db.Drafts.Where(d => d.Name == filter && d.PublicationId == id)); 
} 
+0

Спасибо. Это также полезный ответ. – alockrem

+0

Откуда берется переменная d? Это письмо имеет значение? С уважением –

+0

@ DannyRancher Это выражение лямбда. Письмо не имеет значения, но есть несколько ограничений в отношении охвата. – Dismissile

Смежные вопросы