如何在不使用ViewModel的情况下将LINQ查询发送到View

时间:2016-08-29 20:10:29

标签: c# asp.net-mvc linq

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

视图模型

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);
}

查看

@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>
}

1 个答案:

答案 0 :(得分:0)

您始终可以使用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); } 。像这样:

@model IList<Tuple<string, int>>

在视图上:

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

你可以像这样访问它:

{{1}}

但是不要做,请