【问题标题】:How to display Linq to Entity query result in ASP.NET MVC view如何在 ASP.NET MVC 视图中显示 Linq to Entity 查询结果
【发布时间】:2009-04-29 19:47:05
【问题描述】:

我的 ASP.NET MVC 应用程序中有一个 Link 2 实体查询表达式:

Dim var = From c In context.Evaluation_Template _ 来自 ae 在 context.Assigned_Evaluation _ 加入 ua 在 context.User_Assignment 上 ae.Assignment_ID 等于 ua.Assignment_ID _ 选择 c.Evaluation_Name、ae.Due_Date、ua.Is_Started、ua.Is_Completed、ua.Is_Approved

我想将它传递给视图并显示结果。

我试过了

返回视图(var)

但我不确定如何遍历结果。

一般来说,我是 .NET 的新手,因此我们将不胜感激。

【问题讨论】:

    标签: asp.net-mvc entity-framework linq-to-entities


    【解决方案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))" %>
    

    当然,用您想要传入的模型类型替换 Of String。要传入您的集合,您将使用...

    Return View(query.ToList())
    

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

    然后在您看来,您可以遍历传入的结果。

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

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

    虽然我确实建议最佳实践来创建一个专门用于传递到您的视图的类型,即 ViewData。

    【讨论】:

      【解决方案2】:

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

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

      这是第三个 eidt,我一直在发布 :) 您的视图页面需要采取的是:

      IEnumerable<Evaluation_Template>
      

      您可以通过生成强类型视图或在视图页面的页面指令中设置它来完成此操作。你也可以做你想做的事情(更少的开销),但是你需要一个单独的类来发送到视图页面。

      【讨论】:

      • 感谢您的帮助。你认为你可以发布如何迭代结果的示例代码吗?
      • 见下文,了解一些 VB.NET 的魔力。我仍然敦促您创建新视图并选择强类型视图,然后选择 ModelName.Evaluation_Template 作为类型。这是您将获得的最佳指南。
      猜你喜欢
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      • 1970-01-01
      相关资源
      最近更新 更多