MVC3 ModelBinding 到带有索引间隙的回传集合

2023-12-01

我的模型上有一个对象集合,我使用 EditFor 函数在视图中渲染这些对象,并且我有一个 EditorTemplate 负责实际渲染每个对象。

@Html.EditorFor(model => model.MyObjects)

这已经运行良好一段时间了,当您检查 html 时,我的文本框以 model 属性为前缀,后面是它们来自的集合的索引。

<input class="text-box single-line" id="MyObjects_2__SomeProperty" 
name="MyObjects[2].SomeProperty" type="Text" value="" />

不过,我最近开始在集合的模型元数据中使用 ShowForEdit 和 ShowForDisplay 属性,并且在编辑器模板的第一行中,如果 ShowForEdit 不为 true,我将跳过它。

@if (!ViewData.ModelMetadata.ShowForEdit)
{
    return;
}

但是因为这些都在 html 中建立了索引,所以当我尝试通过回发将此集合保存回视图模型时,由于依赖索引号而失败。当我检查其值时,集合中缺少索引之后的每个项目都从我的视图模型中丢失。

在这种情况下,它实际上是我要跳过的集合中的第一个项目,因为我不希望它在编辑视图上可见,但因此,当我回发 html 中的第一个索引时,它是 1 (而不是 0就像通常那样),但是当您尝试保存更改时,这是一个问题。使用 javascript 更改 DOM 时这也是一个问题。

当 html 表示的集合中的一个或多个索引不存在时,是否有其他人遇到过默认模型绑定器读取回发数据的能力的问题?

有没有模型绑定器可以处理这个问题?


最近遇到了这个问题,并通过将 List 转换为以 GUID 作为键的 Dictionary 来解决它。

@foreach (var index in Model.EmailAddresses.Keys)
{
    <label asp-for="@Model.EmailAddresses[index].Email">Email</label>
    <input asp-for="@Model.EmailAddresses[index].Email" type="text" />
}

这避免了必须包含映射到索引值的隐藏输入。

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

MVC3 ModelBinding 到带有索引间隙的回传集合 的相关文章

  • 调整添加的绘制组件的大小和奇怪的摆动行为

    这个问题困扰了我好几天 我正在制作一个特殊的绘画程序 我制作了一个 JPanel 并添加了使用 Paint 方法绘制的自定义 jComponent 问题是 每当我调整窗口大小时 所有添加的组件都会 消失 或者只是不绘制 因此我最终会得到一个
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • Antlr 解析器运算符优先级

    考虑以下语法 我对运算符优先级有疑问 例如 res 2 a b有一个类似的解析树res 2 a b 我知道问题出在哪里 但我没有想到没有相互左递归的 漂亮 解决方案 你能帮我一点忙吗 该语法与自定义访问者一起使用 grammar Math
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo
  • 带有 Maven Wrapper 的 Java 17 导致无法识别的 VM 选项“MaxPermSize=512m”

    I use OpenJDK 17 https jdk java net 17 使用 Maven Wrapper 3 8 2 从春季初始化 https start spring io Maven项目 JAR打包 Java 17 Spring
  • MySQL 查询计算上个月

    我想计算上个月的订单总额 我收到了从当前日期获取当月数据的查询 SELECT SUM goods total AS Total Amount FROM orders WHERE order placed date gt date sub c
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供
  • PrimeFaces 对话框参考父级

    我有一个 xhtml 页面 显示带有条目的数据表 我还有一个用于插入新条目的按钮 该按钮显示一个包含表单的对话框 插入表格用作
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中
  • GUI Java 程序 - 绘图程序

    我一直试图找出我的代码有什么问题 这个想法是创建一个小的 Paint 程序并具有红色 绿色 蓝色和透明按钮 我拥有我能想到的让它工作的一切 但无法弄清楚代码有什么问题 该程序打开 然后立即关闭 import java awt import
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 如何修复:“无法解析类型 java.lang.CharSequence。它是从所需的 .class 文件间接引用的”消息? [复制]

    这个问题在这里已经有答案了 我正在尝试使用这个字符串 amountStr amountStr replace replace replace 但我收到一条错误消息 我知道我收到的错误消息是因为我刚刚发布的字符串已过时 所以我想知道该字符串的
  • 如何在 OSX 上安装 LaTeX .sty 文件?

    我设置了一个 LaTeX 项目 tex documents some file tex support todonotes sty where some file tex uses todonotes usepackage colorinl
  • Android 材料芯片组件崩溃应用程序。无法膨胀 xml

    Tried Chip来自两个支持库的组件 com google android support design 28 0 0 rc01和材料 com google android material material 1 0 0 rc01 堆栈
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording
  • 探查器模板可以迁移到较新版本的 SQL Profiler 吗?

    是否可以将 Profiler 模板迁移到较新版本的 SQL Server 就我而言 我想将 SQL 2008 模板带到 2012 年 我尝试过 1 直接文件复制和 2 导出 导入 在这两种情况下 旧模板都会运行 但无法修改 修改后会出现以下

随机推荐

  • 防止升级用户时出现 CoreData 崩溃

    大约一年半前 我开发了一个应用程序 现在我又回来了 这是我第一次接触 Swift 的项目 显然从那时起 无论是语言还是我的 Swift 能力都发生了很多变化 昨天 我第一次更新了我的单个 CoreData 模型以添加可选的字符串属性 我进行
  • Tomcat 7 数据源注入机制

    我正在尝试创建简单的网络应用程序 并停留在数据源注入上 似乎有几个问题 那么我就从我的困惑开始吧 据我了解 有两种 至少 方法将 DataSource 注入 Servlet web xml 资源 web xml sample
  • Java WSDL DHL 类

    我已经从 DHL WSDL 创建了 Java 类https cig dhl de cig wsdls com dpdhl wsdl geschaeftskundenversand api 2 2 geschaeftskundenversan
  • 如何在 PHP 中获取有用的错误消息?

    我经常尝试运行 PHP 脚本 但只是得到一个空白屏幕 无错误信息 只是一个空屏幕 原因可能是一个简单的语法错误 错误的括号 缺少分号 或者函数调用失败 或者完全是其他原因 很难找出哪里出了问题 我最终注释掉了代码 在各处输入 echo 语句
  • 在 OS X 10.9 (Mavericks) 上安装 Java

    我已经安装了JDK on Mac OS X v10 8 山狮 当我升级到Mac OS X v10 9 小牛队 然后跑了java version在终端中 它显示 不存在 Java 运行时 请求安装 然后我在 Mac 上手动安装了 JDK 1
  • CurrentUtcDateTime 不存在 - 实体框架和 MySql

    我在 Entity Framework 4 1 和 MySql Connector Net 6 4 3 中遇到规范函数问题 根据 Microsoft 的说法 所有数据库提供程序都可以从 LINQ 生成的 SQL 中理解规范函数并将其转换为本
  • 让 Linq 对象变得“脏”的最干净的方法是什么?

    我有一个 Linq To SQL 对象obj类型的MyClass我已经通过我的数据上下文加载了 现在我想强制该对象保存 即使没有字段实际更改 以便保存操作可以在幕后触发一些触发器 让我的数据上下文认为最简单的方法是什么obj是脏的 所以调用
  • 为什么标准 R 中值函数比简单的 C++ 替代函数慢得多?

    我对中位数进行了以下实现C 并将其用于R via Rcpp Rcpp export double median2 std vector
  • iphone -- 将 MKMapPoint 距离转换为米

    假设我有一个由四个 CLLocationCooperative2D 点组成的正方形 这些点的单位为经纬度 我想找到该正方形的面积 以米为单位 我将 CLLocationCooperative2D 点转换为 MKMapPoints 然后找到
  • 在Python中打印CSV的所有行只能运行一次

    我编写了一个非常简单的程序 该程序应该读取 CSV 并打印所有行两次 然而 当我运行该程序时 它第一次打印了所有行 第二次则没有打印任何内容 Code import csv csvfile csv reader open
  • JQuery:如何克隆自动完成字段?

    我正在使用 J rn Zaefferer 的 jquery 自动完成插件 当我克隆自动完成字段时 我似乎不知道如何使其工作 它几乎可以工作 因为当我输入文本时 克隆的自动完成字段会显示选项 但我无法选择项目 起初我以为这是一个浏览器兼容性问
  • 需要一种方法将特定数据从 Firebase Realtime DB 提取到 Google Sheets

    我正在尝试使用 AppS 脚本将 Firebase Realtime DB 数据传输到 Google Sheets 中 我需要一种方法来从数据库中提取 ID 部门和姓氏字符串 同时从下面的日志中接收这些字符串 我使用 childByAuto
  • Mac OS X 上的 Java System.getProperty("user.dir")

    我的桌面上有一个 Mac OS X 10 4 上的应用程序包 我的应用程序查找一个名为 resources 的文件夹 其中保存要显示的文件 与可运行的 JAR 保存在同一位置 我知道应用程序包中也有一个名为 Resources 的文件夹 抱
  • 通过意图传递可序列化对象

    这是我第一次尝试寻求解决我的问题的方法 所以请尽量友善 通过简单的搜索 我在这个网站上找到了许多我处理的问题的解决方案 但我想这次我没有运气 我发现没有什么适合我的问题 所以我结束了问一个新问题 我试图通过意图将对象从一个活动传递到另一个活
  • 简单的 MVC 设置/设计?

    我只是想确保我在构建简单的 MVC 应用程序方面朝着正确的方向前进 MODEL interface Reactor NSObject NSNumber temperature NSString lastInspection NSNumber
  • 递归 - 嵌套数组求和

    我正在尝试对嵌套数组求和 1 2 3 4 5 不使用循环 但我不明白到目前为止我所拥有的有什么问题 function sumItems array let sum 0 array forEach item gt if Array isArr
  • Youtube API 检索直播游戏标题

    我正在尝试使用 Youtube Api 检索直播的游戏标题 我目前正在使用 视频 列表api 但它似乎没有返回此信息 它确实给了我一些主题 ID 但它们并不代表特定的游戏 这些信息可以通过API获取吗 谢谢 检查此回复 我认为它满足您的所有
  • Rails 不检测文件更改并且 config.reload_classes_only_on_change 使服务器太慢

    首先我不知道这是否是一个错误 到目前为止 我一直在 Railsdevelopment rb 环境配置中使用此命令 以便该框检测我的文件的更改 config reload classes only on change false 但现在 使用
  • 我如何知道我的 Config.xml 文件是否在 Magento 中工作?

    我已经创建了一个示例模块 但我不确定它是否 module etc config xml文件正在加载 我确信仅此而已就有问题 有没有办法可以确定该文件是否已加载 免费模块列表module 由我构建 会告诉您系统中安装了哪些模块 并会告诉您您的
  • MVC3 ModelBinding 到带有索引间隙的回传集合

    我的模型上有一个对象集合 我使用 EditFor 函数在视图中渲染这些对象 并且我有一个 EditorTemplate 负责实际渲染每个对象 Html EditorFor model gt model MyObjects 这已经运行良好一段