MVC - 模型与同一页面上的多个实体绑定

2023-11-23

我想知道如何在从页面上多个实体返回信息的场景中使用模型绑定?

我想显示来自两个单独实体的字段组合,即客户+地址。我正在为我的模型使用 Microsoft 的 DAAB 和自定义业务实体。

有任何想法吗?


如果您尝试在回发时绑定到多个模型,则应尝试使用 Bind 属性并在参数中指定用于每个模型的前缀。在某些情况下(您可能无法为模型元素使用单独的前缀),您可能会发现使用多个 TryUpdateModel 和单独的白名单更容易做到这一点,而不是将模型放入参数中。

public ActionResult Update( [Bind(Prefix="Customer")]Customer customer,
                            [Bind(Prefix="Address")]Address address )
{
   ...
}

这假设你有一个像这样的 ViewModel:

public class CustomerAddressModel
{
    public Customer Customer { get; set; }
    public Address Address { get; set; }
}

并像这样引用它:

<%= Html.TextBox( "Customer.Name" ) %>
...
<%= Html.TextBox( "Address.Street" ) %>

或者,使用 TryUpdateModel,

public ActionResult Update( int id )
{
    var customer = db.Customers.Where( c => c.ID == id ).Single();

    var whitelist = new string[] { "name", "company", ... };
    if (TryUpdateModel( customer, whitelist ))
    {
        var addressWhitelist = new string[] { "street", "city", ... };
        if (TryUpdateModel( customer.Address, addressWhitelist ))
        {
            ...
        }
    }

}

在这种情况下,您的模型可能只包含您尝试更新的两个不同模型中的字段。

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

MVC - 模型与同一页面上的多个实体绑定 的相关文章

  • c# .NET MVC 4 - 如何创建使用 Ninject 服务的 Quartz 作业?

    我正在使用 NET MVC 4 所有服务都是使用 Ninject 注入的 我正在尝试使用 Quartz 来安排工作 目前 职位登记在Global asax如下 Global asax protected void Application S
  • 从操作写入输出流

    由于一些奇怪的原因 我想将 HTML 从控制器操作直接写入响应流 我理解MVC分离 但这是一个特例 可以直接写入吗HttpResponse溪流 在这种情况下 哪个IView控制器操作应该返回对象吗 我可以返回 空 吗 我使用了一个派生类Fi
  • 通过向导方法使用内置 ASP.NET MVC 验证

    我正在使用JQuery Steps 插件基本表单示例 http www jquery steps com Examples basic form为了我的巫师 在此示例中 您会注意到他们使用的是 JQuery Validate 插件 该插件与
  • ASP.NET MVC HandleError 视图未找到

    我正在尝试使用 HandleError 属性在 ASP NET MVC3 中实现异常处理 我正在使用的代码如下所示 HandleError Order 1 ExceptionType typeof SocketsOfflineExcepti
  • 如何从 Azure Web 应用程序中删除过多的响应标头信息?

    我有一个部署在 Azure Web 应用上的 MVC 项目 我正在尝试删除过多的标头信息 我尝试删除此信息的原因是因为这是标准的安全实践 参考 http www troyhunt com 2012 02 shhh dont let your
  • 有没有办法将所有内容都包含在 dbcontext 中?

    当查询一个DbContext急切加载时 需要Include Navigation 为了填充导航属性 然而 在某些情况下 我想简单地Include all实体的导航属性 有没有办法做到这一点 或者有办法做到这一点 我假设你可以反思 但我宁愿避
  • Jquery 对话框部分视图服务器端验证“保存”按钮单击

    我有一个显示数据的表格 表格的每一行都有编辑按钮 单击编辑按钮时 将出现一个 jquery 对话框 其中包含用于编辑用户信息的表单以及保存和取消按钮 表单只不过是部分视图 按钮是部分视图的一部分
  • 我应该为每个 Web 请求使用静态缓存的 ResourceManager 还是一个新实例?有关系吗?

    创建新的 NET 对性能 或其他 有何影响 如果有 ResourceManager根据每个请求new ResourceManger myResourceType FullName myResourceType Assembly 与在 Des
  • jQueryUI autoComplete 返回空列表

    在我的 asp net mvc3 应用程序中 我为搜索框添加了自动完成功能 当我测试它时 该操作返回了 3 个结果 您可以看到显示了一个列表 但是 这是一个空列表 您只看到 3 个 并且 li 标记之间没有任何内容 我很确定 操作没问题 因
  • 有没有办法将复选框列表绑定到 asp.net mvc 中的模型

    我在这里寻找一种快速简便的方法来在模型中发生回发时绑定复选框列表项的列表 显然现在常见的做法似乎是这样的form GetValues checkboxList 0 Contains true 这看起来很痛苦而且不太安全 有没有一种方法可以绑
  • 在 MVC 应用程序中配置 NHibernate 二级缓存

    我有一个使用 NHibernate 的 MVC3 应用程序 一切都很顺利 直到我开始尝试添加二级缓存 浏览网页几个小时后 我终于找到了我认为正确的 dll NHibernate Caches SysCache2 dll 并将其添加到我的项目
  • 如何使用 IHttpActionResult 设置标头

    我想将令牌添加到 webapi 请求的标头中 我怎样才能做到这一点 这是我的示例代码 public IHttpActionResult Authenticate Login data var Token fdsf123546fskjhf g
  • 我应该迁移到 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 Web API [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想建立一个RESTful使用 ASP NET Web API 的 Web 服务 第三方开发人员将使用该服务来访问我的应用程序的数据
  • 使用默认行为将模型绑定到接口

    我正在尝试将控制器操作绑定到接口 但仍保持默认的绑定行为 public class CoolClass ISomeInterface public DoSomething get set ISomeInterface public clas
  • 使用 Ajax Jquery post 请求进行 Json 劫持

    昨天 我读了一些关于如何预防的好文章使用 Asp Net MVC 进行 Json 劫持 http haacked com archive 2009 06 24 json hijacking aspx 规则是 永远不要通过 get 请求发送
  • 如何分配Profile值?

    我不知道我缺少什么 但我在 Web config 文件中添加了 Profile 属性 但无法访问 Profile Item在代码中或创建一个新的配置文件 我今天也遇到了同样的问题 学到了很多东西 Visual Studio 中有两种项目 网
  • 使用 MVC3 根据 Highchart 条形图中的值更改条形颜色

    我正在使用 Dotnet Highchart 和 MVC3 我目前正在使用一个如下所示的图表 我正在尝试修改我的代码 以便我可以根据条形的数量更改条形的颜色 我还想知道如何删除按钮 Snittbetyg 正如您在图像上看到的那样 这是我的代
  • MVC3 中定义路由的文件

    我有这个文件

随机推荐

  • 如何告诉 LLDB 将信号传递给程序

    我在 lldb 中为安装在 MacOS 上的基于 C 语言的应用程序设置了很多断点 断点大多设置在应用程序的同一函数中 然而 第二天我回到应用程序继续处理它 并开始在同一个函数中再次设置断点 出现了一个问题 断点不是发生在应用程序函数内部
  • React Native:如何在 Android 和 iOS 中打开操作系统设置?

    我正在开发一个mobile应用程序使用反应本机我想在其中打开移动设备的settings当用户clicks在特定按钮上 我已经经历了docsRN 但仍然找不到任何可以帮助我实现同样目标的东西 有人可以吗guide我也一样 请问如何实施 谢谢
  • java 当鼠标点击时画一个圆

    我正在编写一个程序 当单击鼠标时 将绘制一个圆圈 以下是我到目前为止编写的代码 import java awt import javax swing import java awt event ActionEvent import java
  • 多模块项目中的 Maven 测试依赖关系

    我使用 Maven 构建一个多模块项目 我的模块 2 依赖于编译范围内的模块 1 src 以及测试范围内的模块 1 测试 模块 2
  • android studio logcat 删除日期、进程信息

    最近一次 Android Studio 更新后 目前我运行的是 3 1 2 logcat 开始间歇性地删除时间戳和 PID 信息 05 01 13 26 03 962 12909 12909 com perinote perinote D
  • 为什么“summarize”会删除一个组?

    我在胡闹babynames pkg A group by命令有效 但之后summarize 其中一个组将从组列表中删除 library babynames babynames 1 10000 gt group by year name gt
  • D3.js线性回归

    我搜索了一些有关构建线性回归的帮助 并在这里找到了一些示例 非线性回归函数还有一些应该涵盖这一点的 js 库 但不幸的是我无法使它们正常工作 简单统计 js和这个 回归 js With regression js我能够得到m and b线的
  • Android:注册意图过滤器以使用我的应用程序打开电子邮件附件

    我有一个可以生成自定义文件类型 sor 的应用程序 在应用程序内部 我有一个功能可以发送附有这些文件之一的电子邮件 我还有一个意图过滤器 允许应用程序显示在可以打开此类文件的应用程序列表中 这使我 有时 可以直接从手机上的用户电子邮件客户端
  • 强类型数据集与弱类型数据集

    Net 中的强类型数据集是什么意思 有人可以用一个清晰 而简短的例子来解释吗 另外 强类型数据集和弱类型数据集之间有什么区别 强类型数据集基于 Db Schema 生成 它们由从 DataSet DataTable 和 DataRow 派生
  • Django TestCase 不使用辅助数据库上的事务

    我正在使用 Django 1 3 1 我有两个数据库 我的一些模型位于一个数据库中 一些模型位于另一个数据库中 这两个数据库都是 contrib gis db backends postgis 数据库 令我惊讶的是 Django 的 Tes
  • GWT:如何避免在生成的JavaScript代码中调用dynamicCast和canCastUnsafe?

    我正在用 Java 编写一些特殊用途的数据结构 旨在在浏览器中使用 使用 GWT 编译为 JavaScript 我正在尝试匹配一些内置 JDK 类的性能 我注意到运行速度相当快 但是当我将我的代码跟踪与一些模拟的 JDK 代码进行比较时 我
  • 使用 HTML/JavaScript 检测本地文件拖放

    有一个 HTML 文本区域 我能够在以下情况下捕获该事件 本地文件被拖放到文本区域上 但如何获取删除的文件名 最后修改并插入到文本区域中 在这种情况下 以下表达式返回 None event dataTransfer files event
  • 如何使用 Access/VBA 复制到剪贴板?

    在 Access 2003 2007 中使用 VBA 如何将字符串变量的内容复制到剪贴板 这个网站建议创建一个零长度的文本框 将字符串复制到文本框 然后运行DoCmd RunCommand acCmdCopy 啊 我的意思是 我们可以沿着这
  • C# 中是否可以合并 string 和 DBNull?

    我正在编写一个 C 例程来调用存储过程 在我传入的参数列表中 其中一个值可能合法地为空 所以我想我会使用这样的行 cmd Parameters Add new SqlParameter theParam theParam DBNull Va
  • PHP 将一个类的实例传递给另一个类

    我对 PHP OO 编程技术还是比较陌生 我有一个非常简单的广泛问题 在类中实例化一个类然后将该实例传递给另一个类通常是不好的做法吗 我想要的是能够创建我知道在每个用户请求中始终需要的特定类的实例 第二类不仅仅是一个辅助类 理想情况下在我的
  • java:为什么局部变量应该声明为final [重复]

    这个问题在这里已经有答案了 可能的重复 在Java中将方法参数声明为final是否有任何性能原因 为什么在 Java 中将局部变量和方法参数标记为 final 我正在使用 PMD 来查看代码违规情况 在 webService 方法中 我有下
  • C# 如何检查两个值之一是否为 TRUE?

    对于 C 专家来说这应该是一个简单的问题 我基本上想检查一个值或另一个值是否为 TRUE 代码如下 if Boolean Parse staff getValue Male Boolean Parse staff getValue Fema
  • 更改 DataGridView 中按钮的颜色

    我到处寻找这个问题的答案 这篇文章的答案 更改 DataGridView 单元格中按钮的颜色没有回答我关于字体的问题 我已经尝试过以下方法 DataGridViewRow r dataGridView Rows 0 r Cells 1 St
  • 用于 PHP 的 Microsoft sqlsrv 驱动程序在查询“SELECT SCOPE_IDENTITY() AS id”时不返回任何结果

    使用 php mssql 驱动程序 此查询工作正常 INSERT INTO Table columnName VALUES text SELECT SCOPE IDENTITY AS id 表确实有一个 id 列 它是一个标识 我将执行该查
  • MVC - 模型与同一页面上的多个实体绑定

    我想知道如何在从页面上多个实体返回信息的场景中使用模型绑定 我想显示来自两个单独实体的字段组合 即客户 地址 我正在为我的模型使用 Microsoft 的 DAAB 和自定义业务实体 有任何想法吗 如果您尝试在回发时绑定到多个模型 则应尝试