1

在下面的 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();
4

4 回答 4

0

2个解决方案:

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

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

于 2013-09-25T05:11:23.777 回答
0

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

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

于 2013-09-25T05:12:12.680 回答
0

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

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;
于 2013-09-25T05:54:07.053 回答
-1

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

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

于 2013-09-25T05:20:57.057 回答