【问题标题】:How to obtain the model values from a object having two models如何从具有两个模型的对象中获取模型值
【发布时间】:2013-09-25 05:03:47
【问题描述】:

在下面的 linq query var query 是一个包含两个模型的对象。我是 asp.net MVC4 的新手,我们如何在我的视图类中使用对象中的模型。 var 查询通过 ViewBag.Message 概念从控制器传递到视图。请帮忙。

 var query = (from F in dataContext.flightobj
                     join FS in dataContext.flightscheduleobj.Where(FS => FS.FlightScheduleID == selectedID) on F.FlightID equals FS.FlightID
                     select new
                     {                             
                         F,FS
                     }).ToList();

【问题讨论】:

    标签: c# linq asp.net-mvc-4


    【解决方案1】:

    为什么你不组合你的模型并且你不在视图中写你的查询..

    public class UserView
    {
    public User User{get;set;}
    public List<Messages> Messages{get;set;}
    }
    

    然后,

    return View(new UserView(){ User = user, Messages = message});
    

    在视图中:

    Model.User;
    Model.Messages;
    

    【讨论】:

      【解决方案2】:

      2 个解决方案:

      1. 创建强类型视图,这样您就可以使用 Model 访问您的模型。或@Model。之后 。你会看到你的属性

      2. 不是强类型,但是你没有来自 VS 的任何智能(也不是强类型)

      【讨论】:

        【解决方案3】:

        您可以创建一个特定的视图模型,然后将其传递给一个强类型视图(您可以使用智能感知),但如果这不是一个选项,或者您只是不想这样做方式,请查看here,了解使用动态处理方式的说明。

        我的建议始终是使用视图模型....让您的生活更轻松。 :-)

        【讨论】:

          【解决方案4】:

          我发现使用通过 ViewBag 传递到视图中的复杂对象非常困难,因此我怀疑将 var 查询作为模型而不是 ViewBag 对象传递到视图中会更好.

          您几乎可以肯定不能在视图中显式使用 flightobj 或 flightcheduleobj,尽管您可以使用连接中出现的任一模型中的列。您可能想编写一个仅在视图中使用的模型,因为这样做可以帮助您清楚哪些数据可用于视图,并且它将提供一个很好的强类型模型,以便在您工作时提供一些智能感知查看。

          【讨论】:

          • 出于好奇和改进我的答案的愿望,为什么我被否决了?有人知道吗?
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-07-03
          • 2011-10-07
          • 1970-01-01
          • 2016-02-29
          • 1970-01-01
          • 2020-10-03
          • 2015-04-06
          相关资源
          最近更新 更多