Model view controller MVC-ViewModel

Model view controller MVC-ViewModel,model-view-controller,viewmodel,Model View Controller,Viewmodel,我需要创建一个包含两个表的linq语句,并将其发送到视图 我是否需要为此创建ViewModel 假设输出如下所示 表1.供应商表1.供应商名称表2.地址取决于结果类型 如果将动态对象返回为匿名类型,则不能将其直接放入ViewBag(请参阅:)。但是如果您返回的是强类型的内容,您可以直接将其放入ViewBag中,而不必使用模型 也就是说,我总是倾向于使用强类型模型 是的,您应该使用视图模型,因为如果您想发送多个表,您可以 使用ViewBag或类似的viewdata[]错误等。。 例如,因为View

我需要创建一个包含两个表的linq语句,并将其发送到视图

我是否需要为此创建ViewModel

假设输出如下所示


表1.供应商表1.供应商名称表2.地址取决于结果类型

如果将动态对象返回为匿名类型,则不能将其直接放入ViewBag(请参阅:)。但是如果您返回的是强类型的内容,您可以直接将其放入ViewBag中,而不必使用模型


也就是说,我总是倾向于使用强类型模型

是的,您应该使用视图模型,因为如果您想发送多个表,您可以 使用ViewBag或类似的viewdata[]错误等。。 例如,因为ViewBag是动态类型,所以无法将其发送到带有2个表的视图 例如,如果你做了这样的事情

 ViewBag.Workers=db.Workers.Join(idb.AspNetUsers, e => e.UserID, i => i.Id, (e, i) => new { UserName = i.UserName, SBIN = e.SBIN, }).ToList();
在视图中使用此viewbag时,将出现错误500

<span>@ViewBag.Workers.Anything</span>
不要在视图或局部视图中使用@model

@model IEnumerable<FinalProject.ViewModels.WorkerViewCardModelcs>


@foreach (var item in Model)
                {
What ever logic you wish 
}
@model IEnumerable
@foreach(模型中的var项目)
{
你到底想怎么样
}
@model IEnumerable<FinalProject.ViewModels.WorkerViewCardModelcs>


@foreach (var item in Model)
                {
What ever logic you wish 
}