将额外数据传递给 EditorTemplate

2023-12-20

假设我有一个 LineItem(来自过度使用的购物车示例),并且我想使用 EditorTemplate 来呈现它。

我完全可以使用父视图(部分或其他)中的 @Html.EditorFor(m => m.LineItems) 渲染它,但令人困惑的是传递一些额外数据的最佳方法(例如具有数据的 SelectList从数据库传入)到模板。

显然,我不应该通过添加这些无关的项目来污染 LineItem 模型(但从视图的角度来看,这是必需的。)

在诉诸 ViewBag/ViewData 技巧之前,我试图看看是否有一种强类型的方法可以做到这一点。

我尝试创建一个“LineItem”特定视图模型来传递数据,但它破坏了 MVC 生成的名称,并向集合中添加了一个额外的层(当我将视图模型的 IEnumerable 传递给 EditorFor( ) 调用,而不是实际 LineItem 的 IEnumerable)

另外,这是对 EditorTemplate 的错误使用吗?对于 EditorTemplate 来说,需要下拉菜单的 LineItem 是否包含来自数据库表的选项太多?

请引导我走向 MVC 必杀技。在等待答案的同时,我会尝试其他想法!

澄清一下:我考虑使用 EditorTemplate 的原因是因为它为我提供了自动集合处理功能。否则整个[id]业务就会变得太粘。


我最近遇到了同样的问题并发现this http://weblogs.asp.net/jgalloway/archive/2010/07/01/using-viewmodel-information-in-an-asp-net-mvc-2-editor-or-display-template.aspx解决方案。

总而言之,您应该创建包含原始集合和所需支持数据的自定义视图模型。然后在调用自定义模板的视图中就可以使用HtmlHelper扩展方法重载以将支持数据传递给ViewData字典。然后,您可以从您的自定义模板中检索并使用它们ViewData.

我认为这是一个很好的解决方法,基本上这就是视图模型的目的,至少它比扩展或派生原始类只是为了为视图提供额外的数据要好得多。

请告诉我它是否适合您的场景或者您是否找到任何其他解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将额外数据传递给 EditorTemplate 的相关文章

  • 如何设置cookie值?

    我正在执行以下操作来设置 cookie 值 HttpCookie mycookie new HttpCookie mycookie mycookie Value value1 Case sensitivity mycookie Expire
  • 如何将敏感数据从视图传递到控制器

    为了构造一个包含大量信息的实体 我需要执行一系列表单提交 每次我从控制器返回视图时 我都需要传递一些有关尚未建立的实体的 id 现在 我将这些信息注入隐藏字段 并在发回服务器时继续构建实体 这样的场景持续了好几次 我对这种传递敏感信息的方式
  • 机器人/蜘蛛可以利用 Cookie 吗?

    我正在尝试检测访客是否是人类 我刚刚有了一个想法 但不确定这是否可行 但是 如果我可以在用户的 浏览器上存储 cookie 并在他们浏览我的网站时检索它 如果我成功检索 cookie 这是否是检测机器人和蜘蛛的好技术 精心设计的机器人或蜘蛛
  • 如何在 Html.BeginForm 中使用 @FileUpload.Get Html 并提交文件列表

    FileUpload GetHtml 有一个默认的提交按钮 但我希望在 Html 开始表单中有一个提交按钮 并使用该替换来提交带有更多参数的文件列表 但是 当我这样做时 在 Action 方法中传递的 IEnumerable 始终为 nul
  • MVC3 RESTful API 路由和 Http 动词处理

    我想为我的 MVC3 应用程序构建 RESTful Json Api 我需要帮助处理多个 Http Verbs 以操作单个对象实例 我读过 研究过 尝试过的内容 MVC 属性 HttpGet HttpPost等 允许我拥有一个具有多个共享相
  • 部分 ASP.NET MVC 视图提交

    我是 ASP NET MVC 的新手 所以这个问题可能显得 愚蠢 抱歉 我的主视图中有一个部分视图 部分视图提交一个表单 调用 HomeController 内的操作方法 它与服务器验证配合得很好 问题是在发布后仅呈现部分视图 发布后如何呈
  • 我应该迁移到 ASP.NET MVC 吗?

    我刚刚听了 StackOverflow 团队的第 17 期播客 他们对ASP NET MVC http www asp net mvc 我决定去看看 但首先 我想确定这是值得的 我已经为几天后开始的项目创建了一个基础 Web 应用程序 供其
  • 从基本控制器继承 LINQ-to-SQL 数据上下文

    我的基本控制器类 BaseController 由面向公众的控制器继承 用于使用 LINQ to SQL 访问请求之间的共享数据上下文 我是否可以通过将数据存储在中来以高效且安全的方式访问我的数据上下文HttpContext Current
  • 需要帮助理解这段代码

    我正在尝试学习单元测试 我正在尝试对我在 asp net mvc 1 0 中制作的一些会员资格内容进行单元测试 我一直在关注一本关于 MVC 的书 我对一些东西感到困惑 希望有人能为我解答 我的框架使用 Nunit 和 Moq 问题一 pu
  • ASP.NET MVC - HybridViewResult (ViewResult /PartialViewResult)

    是否可以构建一个依赖于 Ajax 请求或 Http 请求返回的混合 ViewResultPartialViewResult or ViewResult IsAjaxRequest gt 返回 PartialViewResult IsAjax
  • HttpContext 中需要什么才能允许 FormsAuthentication.SignOut() 执行?

    我正在尝试为我们的注销方法编写一个单元测试 除其他外 它FormsAuthentication SignOut 然而 它抛出一个System NullReferenceException 我创建了一个模拟 HttpContext 使用起订量
  • 当前上下文中不存在名称“DefaultAuthenticationTypes”

    我正在尝试在我的 Web 应用程序中实现基于角色的授权 如下所示 HttpPost ActionName Login public ActionResult Login LoginViewModel model if ModelState
  • MVC4:jQuery 验证不显眼的本机工作不正确

    我的 MVC4 Web 应用程序是在 Umbraco 7 上构建的 我已经安装了以下 nuget 软件包 jQuery 1 10 2 jQuery Validation 1 11 1 jQuery Validation Unobtrusiv
  • EF4 和 SQL Server 2000

    我使用 EF4 和 SQL Server 2005 开发了我的网站 但当转移到临时站点时 发现他们使用 SQL Server 2000 现在我收到此错误 我认为该错误与 SQL Server 2000 有关 Incorrect syntax
  • Firefox 页面未正确重定向

    当我访问我的特定网址时asp net mvc 3 questions tagged asp net mvc 3我在 Firefox 中收到此错误 有问题的页面是登录屏幕 页面未正确重定向 Firefox 检测到服务器正在重定向请求 这个地址
  • 无法加载文件或程序集“System.Web.WebPages.Razor,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”ASP.NET MVC

    我浏览了许多以前回答过的答案 但我并不幸运地找到了我的问题的解决方案 这无法加载文件或程序集 System Web WebPages Razor Version 3 0 0 0 Culture neutral PublicKeyToken
  • 响应不按顺序

    我正在使用 Obout com MVC 控件 并在我的视图之一中包含以下代码 Html Obout new ComboBox Languages Width 175 SelectedIndex int ViewData DefaultLan
  • 使用默认行为将模型绑定到接口

    我正在尝试将控制器操作绑定到接口 但仍保持默认的绑定行为 public class CoolClass ISomeInterface public DoSomething get set ISomeInterface public clas
  • PartialView Action 正在调用自身

    我有 MVC 应用程序 它用于从主视图 ProductMaster 将 ProductAreaGrid 列表显示为 PartialView 并且它将在局部视图内将 CreateProductArea 作为 PartialView 我的 Gr
  • Web 文本编辑器中的 RTF 格式

    网络上是否有支持 RTF 格式文档输入的文本编辑器 我知道这对 webdev 来说有点奇怪 但我需要从数据库中读取 RTF 文档 并在基于 Web 的文本编辑器中对其进行编辑 然后将其存储回 RTF 中 在我在转换工具上投入太多资金之前 我

随机推荐