两个同名字段

2024-02-14

我有一个 ViewModel 类来封装“个人”和“业务”模型。我的问题是,两个模型都有一个名为“电子邮件”的属性,并且模型绑定无法区分两者。

我读到了[Bind(Prefix = ...用于解决此问题,但我还没有看到有关如何实现此目的的简洁示例。

public class BusinessFormViewModel
{
    public Business Business { get; set; }
    public ContactPerson ContactPerson { get; set; }

    public BusinessFromView(Business business, ContactPerson contactPerson)
    {
        Business = business;
        ContactPerson = contactPerson;
    }
}

如何使用绑定前缀来解决此问题?


我相信,如果发布的表单元素的名称中包含前缀,则绑定将正确完成。这就是模板化助手(即 EditorFor)呈现控件的方式,并且我的嵌套视图模型已正确绑定。例如,在您的情况下,您的视图将具有如下形式的元素:

...
<input type="text" name="Business.Email" value="<%=this.Model.Business.Email %>" />
...
<input type="text" name="ContactPerson.Email" value="<%=this.Model.ContactPerson.Email %>" />
...

或者,使用模板化助手(在 mvc 2 中):

...
<%= Html.TextBoxFor(m => m.Business.Email) %>
...
<%= Html.TextBoxFor(m => m.ContactPerson.Email) %>
...

您的控制器只需将 BusinessFormViewModel 作为参数即可,如下所示:

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

两个同名字段 的相关文章

  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 枚举扩展方法

    在vs2008中 是否可以编写适用于任何枚举的扩展方法 我知道您可以针对特定枚举编写扩展方法 但我希望能够使用单个扩展方法对每个枚举进行处理 这可能吗 是的 只需针对基础进行编码Enum类型 例如 public static void So
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi

随机推荐

  • 在 Thread + Queue 或 ThreadPoolExecutor 上使用 async-await?

    我从未使用过async await语法 但我经常需要发出 HTTP S 请求并解析响应 同时等待未来的响应 为了完成这项任务 我目前使用线程池执行器 https docs python org 3 library concurrent fu
  • 从另一个类调用委托方法

    我无法弄清楚如何在 C 中对跨类的委托方法调用进行编程 我来自 Objective C 的世界 这可能会让我感到困惑 在 Objective C 中 我可以在子类中分配一个委托对象作为父类 即 childViewcontroller del
  • 自定义 asp.net 身份存储 - 为什么 HttpContext.Current 有时为空

    我按照示例集实现了 ASP NET Identity 的自定义用户存储here http www jamessturtevant com posts ASPNET Identity2 0 Custom Database 一切正常 除了这个
  • 扩展应用程序还是使用单例?

    我有一个 android 项目 其中有一个或多个活动需要访问的不同对象 现在我正在考虑创建一个子类Application然而根据文档 http developer android com reference android app Appl
  • 通过单元格的值动态设置 Excel 图表数据系列范围

    我在 Excel 中有一个简单的图表 其中绘制了 2 个数据系列 引用了第 3 个数据系列 我想要做的是根据单元格中的数字更改第一个数据系列之一的范围 例如 如果数字为 1 并且数据系列位于 A 列中 则图表的范围应为A1 A100 现在
  • 在 Yii2 中一次保存多个模型

    我有两个模型 Users and Students 我想同时将数据插入到这些表中 首先 我将数据保存到Students模型 然后进入Users楷模 现在 如果数据没有成功插入到Users模型已经有一个条目Students桌子 我想要的是仅当
  • Akka Actor 带有 TimeoutException 的“询问”和“等待”

    我正在使用 Scala 和 Akka 建模一个简单的 P2P class Node extends Peer with Actor var peers List ActorRef List def receive case register
  • iOS13 getUserMedia 不适用于 Chrome 和 Edge

    我和我的朋友正在构建一个需要相机访问权限的应用程序 但我们在让相机与 iOS 配合使用时遇到了一些问题 我们使用的是 iOS13 Safari 在获取相机内容后立即冻结 chrome 和 Edge 根本无法获取相机访问权限 我们的代码如下
  • Asp.Net MVC 中 DataAnnotations StringLength 文本框的 maxlength 属性

    我正在开发 MVC2 应用程序 想要设置文本输入的 maxlength 属性 我已经使用数据注释在模型对象上定义了 stringlength 属性 并且它正在正确验证输入字符串的长度 当模型已有信息时 我不想通过手动设置最大长度属性来在视图
  • 启动 Firefox、使用特权 nsI* API 驱动第 3 方网站的最简单方法

    启动 Firefox 最简单的方法是什么 加载第 3 方网站 我是授权的 自动化 并针对该站点运行一些 特权 API 例如 nsIProgressListener nsIWindowMediator 等 我尝试了两种方法 使用 XULrun
  • Next.js - 从节点模块的“dist”文件夹提供静态 JS 的最佳方式

    我正在使用一个使用 Tesseract OCR 从图像中读取文本的应用程序 我想从 node modules tesseract js dist 获取一些 JS 文件 并使它们可以在浏览器中下载 我知道我可以将文件复制到 public ne
  • Pandas 绘制重复的数据框

    我正在尝试绘制包含 2 列的 pandas 数据框 如下所示 For i in data1 for j in data2 traces append go Scatter x df A y df B plot A 列有重复值 当我绘制它们时
  • Grails 急切获取不会检索所有数据

    我有域类 class Person static hasMany items Item static fetchMode items eager String name Set items class Item static belongs
  • 全屏背景上的android xml可绘制图像

    我需要在 android 中使用 xml 可绘制对象 用于 cordova 启动屏幕 我想在屏幕中央显示一个透明徽标 不拉伸 而屏幕的其余部分则设置背景颜色 我首先尝试的是仅在 xml 文件中添加图像
  • 使用堆栈时无法导入 System.Directory

    我有点困惑为什么这不起作用 我有一个导入 System Directory 的小程序 当我在命令行上使用 runhaskell 运行它时 它会编译并输出我期望的内容 当我使用与堆栈相同的程序时 我收到一条消息说 无法加载 System Di
  • 使用specs2 + scalalogging 进行单元测试记录器消息

    我这里有一个小问题 真的不知道如何实现记录器消息的单元测试 当然 这听起来有点奇怪 但对我来说这是一个非常有趣的话题 但让我说得更具体一些 我有一些 scala 类和测试规范 class Testable extends Logging d
  • JavaScript 中的 MAC 地址

    我知道我们可以通过 IE ActiveX 对象 获取用户的 MAC 地址 有没有办法使用JavaScript获取用户的MAC地址 我同意之前的所有答案 如果您能够直接从 Javascript 执行此操作 这将是一个隐私 安全漏洞 我能想到的
  • MSIE 10、网页字体和字体功能设置导致文本不可见

    我认为这确实是 Microsoft Internet Explorer 10 中的一个错误 但我在任何地方都找不到该问题的任何解释 问题的现场演示可以在以下位置找到http jsfiddle net 37Bu5 http jsfiddle
  • SBT测试中出现奇怪的异常

    我面临 SBT 版本 0 13 9 的问题 我的 ScalaTest 测试之一失败 不确定性EOFException 堆栈跟踪 Exception in thread Thread 155 Exception in thread Threa
  • 两个同名字段

    我有一个 ViewModel 类来封装 个人 和 业务 模型 我的问题是 两个模型都有一个名为 电子邮件 的属性 并且模型绑定无法区分两者 我读到了 Bind Prefix 用于解决此问题 但我还没有看到有关如何实现此目的的简洁示例 pub