2013-09-25 50 views
1

在下面的linq查询中,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(); 

回答

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; 
0

2解决方案:

  1. 创建强类型的视图,这样你可以用存取权限模型模型。或@Model。之后 。你会看到你的属性

  2. 不强类型,但你不要有来自VS任何intelisence(而不是强类型)

0

您可以创建一个特定的视图模型,然后通过通过一个强类型视图(其中intellisense将提供给你),但如果这不是一种选择,或者你只是不想这样做,请看一下here以解释使用动态的做事方式。

我的建议永远是与视图模型一起....让您的生活更轻松。 :-)

-1

我发现使用ViewBag传递到视图中的复杂对象非常困难,所以我怀疑你会更好地将var查询作为模型传递给视图一个ViewBag对象。

尽管您可以使用来自出现在连接中的任一模型的列,但您几乎可以肯定无法在视图中明确使用flightobj或flightscheduleobj。您可能需要编写一个模型以供在视图中使用,因为这样做可以帮助您清楚哪些数据可用于视图,并且它将提供一个很好的强类型模型,以便在处理视图时提供一些智能感知。视图。

+0

出的好奇心和想要改进我的答案,为什么我会被拒绝?有人知道吗? – jonatwabash

相关问题