如何在不使用ViewModel的情况下向视图发送LINQ查询

本文关键字:视图 查询 LINQ 情况下 ViewModel | 更新日期: 2023-09-27 18:04:32

我可以使用ViewModel并通过它将我的LINQ查询传递给带有@model指令的视图作为@model IEnumerable<MyWebProject.ViewModels.MyViewModel>问题:但是,1。如果我不想在下面的例子中使用视图模型怎么办?在这种情况下,我的@model指令是什么?

ViewModel :

public class MyViewModel
{
    public string CustomerName{ get; set; }
    public int CustomerOrderNo{ get; set; }
}
控制器

:

public ActionResult Index()
{
    MyViewModel vm= new MyViewModel();
    var vm = (from c in db.Customers
             join o in db.Orders
             select new { CustomerName = c.Name, CustomerOrderNo = o.OrderNo}).ToList();
            return View(vm);
}
<<p> 视图/strong>:
@model IEnumerable<MyWebProject.ViewModels.MyViewModel>
@foreach (var item in Model)
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.CustomerName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.CustomerOrderNo)
        </td>
    </tr>
}

如何在不使用ViewModel的情况下向视图发送LINQ查询

您总是可以使用Tuple。这样的:

public ActionResult Index()
{
    MyViewModel vm= new MyViewModel();
    var vm = (from c in db.Customers
             join o in db.Orders
             select new Tuple<string, int>(c.Name, o.OrderNo).ToList();
            return View(vm);
}

And on View:

@model IList<Tuple<string, int>>

你可以这样访问它:

@foreach (var item in Model)
{
    @Model.Item1
}

, 不这样做,请