asp.net-mvc – MVC – 视图中的多个模型
我正在使用MVC(第一次)使用Entity框架,数据库优先
我想要做的是在单个视图中显示数据库中的数据.我首先创建了数据库,然后根据包含所有表的数据库创建了一个ADO.NET实体数据模型.然后我创建了一个使用我的实体数据模型作为模型强类型的索引视图. 在我的索引中,我有顶部 @model IEnumerable<Forum6.Models.Forum> 这允许我从我的数据库中获取表“论坛”中的行.如果我尝试添加额外的模型,我得到运行时收到此错误消息:
在找到答案后,我发现了这个:Two models in one view in ASP MVC 3 public class ViewModel { public IEnumerable<Forum6.Models.Forum> Forum { get; set; } public IEnumerable<Forum6.Models.Post> Post { get; set; } public IEnumerable<Forum6.Models.Topics> Topics { get; set; } public IEnumerable<Forum6.Models.Users> Users { get; set; } public IEnumerable<Forum6.Models.PrivMsg> PrivMsg { get; set; } public IEnumerable<Forum6.Models.Permission> Permission { get; set; } } 我编辑我的控制器看起来像这样: public class HomeController : Controller { // ForumDBEntities old_db = new ForumDBEntities(); ViewModel db = new ViewModel(); public ActionResult Index() { return View(db); } } 然后使用ViewModel作为模型的新强类型视图替换旧的Index视图.其中包含: @model IEnumerable<Forum6.Models.ViewModel> 试图运行这个给我这个错误:
如何让“ViewModel”变得强大?或者我的错误在其他地方? 解决方法
您需要更改@model IEnumerable< Forum6.Models.ViewModel>到@model Forum6.Models.ViewModel,因为你将IEnumerables包装在一个ViewModel中.
一个好的经验法则是在ViewModel和View之间建立1:1的关系. 这可能是一个很好的阅读:http://lostechies.com/jimmybogard/2009/06/30/how-we-do-mvc-view-models/(如果你不想去那条路线,只需忽略automapper部分) 您还需要在ViewModel中输入实际数据 ViewModel db = new ViewModel(); public ActionResult Index() { return View(db); } 只会给你的视图一个空的ViewModel. public ActionResult Index() { var model = new ViewModel { Forum = db.GetForum(),Post = db.GetPost(),Topic = you get the idea }; return View(model); } 在命名属性或变量时,最后一件事是在包含列表时应使用复数动词.所以你的ViewModel会是. public class ViewModel { public IEnumerable<Forum6.Models.Forum> Forums { get; set; } public IEnumerable<Forum6.Models.Post> Posts { get; set; } public IEnumerable<Forum6.Models.Topics> Topics { get; set; } public IEnumerable<Forum6.Models.Users> Users { get; set; } public IEnumerable<Forum6.Models.PrivMsg> PrivMsgs { get; set; } public IEnumerable<Forum6.Models.Permission> Permissions { get; set; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何在mvc网格格式中格式化日期
- 使用 ASP.NET Core MVC 创建 Web API(六)
- ASP.NET / VB.NET:Dropdownlist SelectedIndexChanged没有
- asp.net-mvc – 无法使用ASP.NET(MVC 4)加载文件或程序集Sy
- asp.net – 在集线器上下文之外的SignalR集线器中调用Calle
- asp.net-mvc-4 – IIS 7.5上的ASP.NET MVC 4,返回404.与无扩
- asp.net-mvc – ASP.NET MVC – CustomeAuthorize使用外部网
- asp.net-mvc – 在MVC 3项目中使用T4MVC生成的代码编译错误
- ASP.NET Web服务中的可选参数
- 基于ASP.NET使用C#实现简单人脸识别功能
- asp.net – 将DetailsView行组合在一起?
- ASP.NET:在URL中隐藏查询字符串
- 为什么工作线程使我的ASP.NET生成器在睡眠期间遇
- asp.net-mvc-3 – 服务器端命令行
- asp.net-mvc-3 – 我需要什么样的路线才能提供虚
- asp.net-mvc – ICommandHandler / IQueryHandle
- FormsAuthenticationModule使用ASP.NET MVC验证事
- 遭遇Asp.Net长文件名下载的问题和解决办法
- asp.net – 配置转换和“TransformXml任务失败”
- asp.net-mvc – ASP.NET MVC App中基于声明的条件