如何在视图中显示查询结果?

时间:2009-03-12 11:24:53

标签: asp.net-mvc

我正在使用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 个答案:

答案 0 :(得分:2)

您希望拥有强类型视图并将产品作为视图模型传递

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

 return View( product );

您的视图的类型为ViewPage<Product>

答案 1 :(得分:2)

你们都可以使用:

- 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或模型后,您可以调用:

return View();

另一种方法是调用View重载,它接受模型作为参数,如tvanfosson所说。