2009-04-29 139 views
1

我在我的ASP.NET MVC应用的链接2实体查询表达式显示LINQ到实体查询结果:如何在ASP.NET MVC视图

 
Dim var = From c In context.Evaluation_Template _ 
      From ae In context.Assigned_Evaluation _ 
      Join ua In context.User_Assignment On ae.Assignment_ID Equals ua.Assignment_ID _ 
      Select c.Evaluation_Name, ae.Due_Date, ua.Is_Started, ua.Is_Completed, ua.Is_Approved 

我想这个传递给视图,并显示结果。

我已经试过

 
Return View(var) 

但我不知道如何遍历这些结果。

我是新来的.NET一般所以任何帮助将不胜感激。

回答

0

首先它看起来像你的查询是搞砸了一点点。我不确定VB.NET,但是在这种情况下你需要一个单独的类,因为你选择的不是你的实体框架模型。

Dim var = From c In context.Evaluation_Template 
      .Include("Assigned_Evaluation") 
      .Include("User_Assignment") 
      Select c 

这是第三eidt,我一直张贴:)你的视图页面,然后需采取的是:

IEnumerable<Evaluation_Template> 

你要么通过生成一个强类型的视图或设置它这样做查看页面的页面指令。你也可以做你正在尝试的东西(少开销),但是你需要一个单独的类来发送到视图页面。

+0

感谢您的帮助。你认为你可以发布如何遍历结果的示例代码? – CoolGravatar 2009-04-29 20:05:09

1

如果你想强类型对象在视图中使用,你需要进入你的观点,改变从顶部... \

<%@ Page Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> 

<%@ Page Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of IEnumerable(Of String))" %> 

当然用您想要通过的模型类型替换字符串。要通过您的收藏,您可以使用...

Return View(query.ToList()) 

...假设查询是某种来自ADO.NET EF的IQueryable查询。

然后在您的视图中,您可以通过传递的结果进行迭代。

<% For Each s As String In Model 
     %><%=s%><% 
    Next%> 

这将输出传递到视图的数据模型集合中的每个字符串。

虽然我建议最佳做法来创建一个专门用于传入视图的类型,即ViewData。