采用IEnumerable与模型的Razor View之间的区别?
发布时间:2020-12-16 09:12:31 所属栏目:asp.Net 来源:网络整理
导读:我见过有人写@model IEnumerable WebApplication1.Models.Weight在他们的视图的顶部,一些写@model WebApplication1.Models.Weight 我想知道两者之间的区别.喜欢何时使用什么? 解决方法 采用IEnumerable Entity的剃刀视图作为模型意味着控件将一组对象(例如
我见过有人写@model IEnumerable< WebApplication1.Models.Weight>在他们的视图的顶部,一些写@model WebApplication1.Models.Weight
我想知道两者之间的区别.喜欢何时使用什么? 解决方法
采用IEnumerable< Entity>的剃刀视图作为模型意味着控件将一组对象(例如视图模型或实体)作为模型传递给页面.例如
@model IEnumerable<MyNamespace.Entity> 会匹配一个控制器动作,如 [HttpGet] public ActionResult SearchByName(string startsWith) { var entities = Db.Entities .Where(e => e.StartsWith(startsWith)) .ToList(); return View(entities); } 这样视图就可以访问多个Entity对象(例如,有问题的页面可能是索引或搜索结果页面,其中条目可以以表格方式与foreach一起列出) 相比之下,将单个对象作为模型的剃刀视图仅显示一个对象,例如, @model MyNamespace.Entity 将用于控制器动作,如 [HttpGet] public ActionResult Details(int id) { var entity = Db.Entities.Find(id); if (entity == null) return HttpNotFound(); return View(entity); } 意味着视图具有单个实体模型主题,例如页面可能显示一个Entity对象的详细信息,或允许更新或仅插入一个实体. 页面可用的相应Model实例对象将是@model的相应类型. 另一点需要注意的是,IEnumerable也表达了不变性,即View应该读取集合,但可能不会例如从中添加或删除实体(即,最好将脚手架保留为IEnumerable,而不是将其更改为例如IList或ICollection). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 从ASP的Ajax.ActionLink获取JSonResult
- asp.net – 在asp:Button中包装文本
- asp.net-mvc – asp.net mvc – 在哪里存储userid – integ
- asp.net-MVC – ASP.NET MVC:我可以说[授权角色=“管理员”
- log4net 日志框架的配置
- asp.net-mvc – ASP.NET MVC:从控制器返回CDN图像
- 运行SonarQube针对ASP.Net核心解决方案/项目
- asp.net-mvc – 自定义授权MVC 3和Ninject IoC
- ASP.NET处理程序未在IIS7上运行
- asp.net-mvc – 无法加载文件或程序集System.Web.WebPages.
推荐文章
站长推荐
- Asp.net SignalR 让实时通讯变得如此简单
- asp.net-mvc – 使用来自MVC的SAML和Okta进行身份
- asp.net-mvc – $.ajax({async:false})请求仍然
- asp.net-mvc – 便携式区域与多个项目区域?
- asp.net-mvc – 如何将Home / Action / id映射到
- asp.net(C#)把汉字转化成全拼音函数(全拼)
- 自定义数据注释ASP.NET MVC C#
- asp.net-mvc – ASP MVC:为什么我的视图中看不到
- ASP.NET MVC Route的几种配置方法
- asp.net-mvc-4 – 如何永久教Visual Studio检测我
热点阅读