Как отобразить результат запроса в представлении? - PullRequest
1 голос
/ 12 марта 2009

Я использую MVC RC2.

У меня есть две таблицы 1) Продукт (PID, PName, CIDfk); 2) Категория (CID, CName);

Так что я запрашиваю, как эти

var Product = from p in dc.Product
                       from C in dc.Category
                       where p.CIDfk == c.CID
                       select new { ProductName = p.PName, ProductCategory = c.CName };
return view();

где dc - контекст базы данных класса LINQ-to-SQL (.dbml);

Как отобразить на экране? где я прохожу продукт? (в viewdata или в 'return view ()')

Пожалуйста, помогите мне ...

Ответы [ 2 ]

2 голосов
/ 12 марта 2009

Вы можете использовать оба:

- ViewData["MyName"] = product.SingleOrDefault(); 

Таким образом, из вида, который вы делаете:

 <% Product p = (Product)ViewData(p) %>

или заполните модель:

ViewData.Model = product.SingleOrDefault();

Таким образом, из вида, который вы сделали бы:

<%Product p = ViewData.Model%> //in case of a Strongly typed view
<%Product p = (Product)ViewData.Model%> //otherwise

После заполнения ViewData или Model вы можете позвонить:

return View();

Другой подход - вызвать перегрузку View, которая принимает модель в качестве параметра, как сказал tvanfosson.

2 голосов
/ 12 марта 2009

Вы хотите иметь строго типизированное представление и передать продукт в качестве модели представления

 var product = from p in dc.Product
                   from C in dc.Category
                   where p.CIDfk == c.CID
                   select p;

 return View( product );

где ваш вид имеет тип ViewPage<Product>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...