如何从具有两个模型的对象中获取模型值
问题描述:
在下面的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();
答
你为什么不结合你的模型,你不要写在视点侧查询..
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解决方案:
创建强类型的视图,这样你可以用存取权限模型模型。或@Model。之后 。你会看到你的属性
不强类型,但你不要有来自VS任何intelisence(而不是强类型)
答
您可以创建一个特定的视图模型,然后通过通过一个强类型视图(其中intellisense将提供给你),但如果这不是一种选择,或者你只是不想这样做,请看一下here以解释使用动态的做事方式。
我的建议永远是与视图模型一起....让您的生活更轻松。 :-)
答
我发现使用ViewBag传递到视图中的复杂对象非常困难,所以我怀疑你会更好地将var查询作为模型传递给视图一个ViewBag对象。
尽管您可以使用来自出现在连接中的任一模型的列,但您几乎可以肯定无法在视图中明确使用flightobj或flightscheduleobj。您可能需要编写一个模型以供在视图中使用,因为这样做可以帮助您清楚哪些数据可用于视图,并且它将提供一个很好的强类型模型,以便在处理视图时提供一些智能感知。视图。
出的好奇心和想要改进我的答案,为什么我会被拒绝?有人知道吗? – jonatwabash