MVC,从页面中的多个部分视图传回值

2024-01-10

当我尝试从包含相同部分视图两次的页面传回值时,我遇到了问题。 我的类定义如下:

public class Account : IEntity
{

    public decimal CurrentBalance { get; set; }
    public List<Person> AccountHolders { get; set; }
    //to get round the non-existing enum support in EF4.3 wrap enum to int
    public int StatusValue { get; set; }
    public AccountStatus Status { get { return (AccountStatus)StatusValue; } set { StatusValue = (int) value; } }

    public DateTime AccountOpenDate { get; set; }
    public DateTime AccountCloseDate { get; set; }
    public DateTime AccountSuspensionDate { get; set; }
    }

它有一个 Person 列表,我为其制作了部分视图(针对单个人)。

<fieldset>
    <legend>Person</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.Name)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Name)
        @Html.ValidationMessageFor(model => model.Name)
    </div>
      <div class="editor-label">
        @Html.LabelFor(model => model.Age)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Age)
        @Html.ValidationMessageFor(model => model.Age)
    </div>
</fieldset>

在帐户的“创建”页面中,我包含了我创建的 2 个部分视图,如下所示。

 <div id="Person1">
        @Html.Partial("_CreateAccountHolder" )
    </div>

     <div id="Person2">
        @Html.Partial("_CreateAccountHolder")
    </div>

当我查看回发的内容时,它包含我放入页面表单值中的值(名称和年龄作为人员的属性),并且我按预期拥有了它们: CurrentBalance=19&状态=关闭&AccountOpenDate=12%2F12%2F2012&Name=mustafa&Age=20&Name=sofia&Age=20&AccountCloseDate=12%2F12%2F2012&AccountSuspensionDate=12%2F12%2F2012

但是当我查看控制器上的创建方法时,我看到 AccountHolder 列表为空。我尝试过各种签名... 公共ActionResult Create(帐户personalaccount,Person [] accountHolders) public ActionResult Create(帐户个人帐户,列出帐户持有者)

如果我只有 Person 的一个部分视图并且有这样的控制器,我可以看到 Person 对象正确绑定。 public ActionResult Create(帐户个人帐户,个人帐户持有人)

关于我哪里出错了有什么想法吗?


如果我正确理解您的场景,实现此目的的一种方法是使用编辑器模板而不是部分视图。我在这里写了一些关于他们的文章:

codenodes.wordpress.com - MVC3 编辑器模板 http://codenodes.wordpress.com/2012/04/27/mvc-3-editor-templates

创建编辑器模板:

  • 如果您的解决方案的 Web 项目中还没有名为“EditorTemplates”的文件夹,请在 Views\Shared 文件夹中创建一个文件夹。
  • 添加一个新的部分视图并将其命名为与您正在渲染的模型相同的名称,在您的例子中为 Person,因此您可以将其称为 Person.cshtml (我知道部分视图应该以下划线“_”开头,但对于编辑器模板需要与模型命名相同)。
  • 将“_CreateAccountHolder”部分视图中的代码粘贴到新的 Person.cshtml 编辑器模板中。
  • 在您的创建页面中呈现您的 AccountHolders 列表:
<div id="People">
    @Html.EditorFor(x => x.AccountHolders)
</div>

如果您需要在每个人周围有单独的 div,那么您可以将它们添加到编辑器模板中。编辑器模板的好处是,即使列表中有多个 Person 对象,您也只需要对模板进行一次调用 - 无需循环或类似的操作,因为模板会自动呈现每个 Person 对象。它还正确命名该字段,因此如果您的集合中有 2 个 Person 对象,它应该回发类似以下内容:

AccountHolders[0].Name
AccountHolders[0].Age
AccountHolders[1].Name
AccountHolders[1].Age

这是编辑器模板的代码:

@model Person

<fieldset>
    <legend>Person</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.Name)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Name)
        @Html.ValidationMessageFor(model => model.Name)
    </div>
      <div class="editor-label">
        @Html.LabelFor(model => model.Age)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Age)
        @Html.ValidationMessageFor(model => model.Age)
    </div>
</fieldset>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC,从页面中的多个部分视图传回值 的相关文章

  • 如何清除 ASP.NET MVC 应用程序中文本框的发布数据?

    默认情况下 使用 呈现的文本框使用发布数据中的值 例如如果页面上存在验证错误 将从发布的数据中检索该值并将其用于 value 属性 现在 在某些情况下 我希望能够清除该值 换句话说 我希望文本框为空 我不希望 MVC 从发布的数据中获取值并
  • 是什么导致“线程被中止”异常随机发生并向浏览器显示 HTTP 标头和部分 HTML?

    发生的情况偶尔是随机的 而不是像您期望的那样将 HTML 返回到浏览器 它看起来有点像这样 线程正在中止 HTTP 1 1 200 OK 标题的其余部分 如 HTML 的 1 10 就是这样 他们实际上在浏览器窗口中收到了一堆文本 它不会一
  • ASP.NET MVC 中的访问控制取决于输入参数/服务层?

    序言 这是一个有点哲学问题 我更多地寻找 正确 的方法来做到这一点 而不是 一种 的方法来做到这一点 假设我有一些产品 以及一个在这些产品上执行 CRUD 的 ASP NET MVC 应用程序 mysite example products
  • 当键位于父类中时,如何将一对多集合映射到连接的子类

    我想将一对多集合映射到子类 但集合的键是父类的属性 目前我正在映射 AbstractFoo Foo 和 Bar 类 如下所示
  • 机器人/蜘蛛可以利用 Cookie 吗?

    我正在尝试检测访客是否是人类 我刚刚有了一个想法 但不确定这是否可行 但是 如果我可以在用户的 浏览器上存储 cookie 并在他们浏览我的网站时检索它 如果我成功检索 cookie 这是否是检测机器人和蜘蛛的好技术 精心设计的机器人或蜘蛛
  • 如何在 Rails 中格式化日期时间?

    在我的 Rails 视图中 我有以下显示日期时间的代码 该行的结果如下 2013 02 02 01 00 00 UTC 我该如何更改它 使其显示为 2 2 13 X 00 PST 使用红宝石的strftime 关于日期 日期时间 看一下文档
  • MVC3 RESTful API 路由和 Http 动词处理

    我想为我的 MVC3 应用程序构建 RESTful Json Api 我需要帮助处理多个 Http Verbs 以操作单个对象实例 我读过 研究过 尝试过的内容 MVC 属性 HttpGet HttpPost等 允许我拥有一个具有多个共享相
  • 有没有办法将复选框列表绑定到 asp.net mvc 中的模型

    我在这里寻找一种快速简便的方法来在模型中发生回发时绑定复选框列表项的列表 显然现在常见的做法似乎是这样的form GetValues checkboxList 0 Contains true 这看起来很痛苦而且不太安全 有没有一种方法可以绑
  • 如何在 MVC5 中创建两种类型的用户?

    我正在创建 MVC5 应用程序 并且已经在使用 ASP NET Identity 来创建用户 因此 我已经有了 AspNetUsers 表 每当用户注册时 我都会在那里获得一个条目 我还有一个管理员角色 我可以手动指定哪个注册用户是管理员
  • ASP.NET MVC 2 发行版本的实际调试符号

    我需要 ASP NET MVC 2 发布版本 通过 Web 平台安装程序安装的版本 中的实际调试符号 我知道我可以下载源代码 构建并使用其中的调试符号 但这种方法有几个问题 要求使用此版本的 DLL 重建所有其他依赖项 因为它未签名 如果您
  • 我可以在 Orchard CMS 中使用我的 Ninject .NET 项目吗?

    我正在使用 Orchard CMS 创建一个网站 并且有一个用 Ninject 编写的外部 NET 项目 用于依赖注入 我想将其与 Orchard CMS 中的模块一起使用 我知道 Orchard 使用 Autofac 进行依赖注入 这给我
  • MVC 中的 HttpPost 与 HttpGet 属性:为什么使用 HttpPost?

    所以我们有 HttpPost 这是一个可选属性 我知道这会限制调用 因此只能通过 HTTP POST 请求进行调用 我的问题是我为什么要这样做 想象一下以下情况 HttpGet public ActionResult Edit int id
  • ASP.NET MVC - HybridViewResult (ViewResult /PartialViewResult)

    是否可以构建一个依赖于 Ajax 请求或 Http 请求返回的混合 ViewResultPartialViewResult or ViewResult IsAjaxRequest gt 返回 PartialViewResult IsAjax
  • 从 SortedList 或 SortedDictionary 获取第 i 个值

    我有一个排序的对象集合 它可以是 SortedList 或 SortedDictionary 我将主要使用它来阅读 因此增加性能并不那么重要 我怎样才能得到第i个值 所以例如当我的集合中有数字 1 2 3 4 5 并且我想要中位数 本例中为
  • Html.Display对于十进制格式?

    例如 我有一个十进制值 59625879 00 我想这样显示这个值 59 625 879 or 59625 879 我怎样才能做到这一点 Html DisplayFor x gt x TAll String Format Thanks 装饰
  • 是否有 apache.commons.collections.CollectionUtils 的可行的通用替代方案?

    是否有可行的通用版本org apache commons collections CollectionUtils 如果没有 为什么不呢 这似乎是一个显而易见的需求 或者 Java 社区是否已经放弃了函数式编码 直到 Java 17 添加了闭
  • EF4 和 SQL Server 2000

    我使用 EF4 和 SQL Server 2005 开发了我的网站 但当转移到临时站点时 发现他们使用 SQL Server 2000 现在我收到此错误 我认为该错误与 SQL Server 2000 有关 Incorrect syntax
  • 如何将一个 SwiftUI View 作为变量传递给另一个 View 结构

    我正在实施一个very自定义 NavigationLink 称为MenuItem并希望在整个项目中重用它 它是一个符合以下条件的结构体View并实施var body some View其中包含一个NavigationLink 我需要以某种方
  • Scala 条件列表构造

    我正在使用 Scala 2 9 2 并且想根据某些条件构建一个列表 考虑以下情况 其中 cond 是采用谓词 p 和类型 T 的值 在本例中为 t3 的某个函数 t1 t2 cond p t3 t4 我想要的行为如下 如果 p 为真 则应给
  • 使用默认行为将模型绑定到接口

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

随机推荐

  • 最好使用私有方法还是受保护方法?

    在我的许多 PHP 项目中 我最终得到的类具有我不打算扩展的非公共函数 最好将它们声明为受保护的还是私有的 我可以从两种角度看待争论 将它们设为私有是一种更为保守的方法 但可以说 如果我希望扩展该方法 并且它清楚地表明哪些方法是由基类扩展的
  • 在 Rhino 中作为 JavaScript 对象访问 java 地图和列表

    有没有办法在 Rhino 中以 JavaScript 对象的形式访问 Java 地图和列表 我有一个 Map 其中仅包含其他映射以及基元和字符串列表 我想将其传递给 Rhino 脚本并对其执行操作 并将修改后的对象返回到 Java 但因为它
  • 具有多个国家/地区代码顶级域名 (ccTLD) 的 Facebook 应用

    假设我们有一个通过以下域提供服务的 Web 应用程序 www something com www something co uk www something de 我想知道是否有一种方法可以验证用户的 Facebook 帐户 从这些不同的域
  • 从开始日期到结束日期的每个日期的行

    我想做的是记录如下所示 Start DT End DT ID 4 5 2013 4 9 2013 1 并将其更改为如下所示 DT ID 4 5 2013 1 4 6 2013 1 4 7 2013 1 4 8 2013 1 4 9 2013
  • Heroku 上的自定义根域

    我有一个域 example com 我想将其用于位于 example herokuapp com 的 Rails 应用程序 但我很困惑如何执行此操作 赫罗库 说 https devcenter heroku com articles cus
  • 如何使用 jQuery 通过命名空间进行 XML 解析

    我是 jQuery 新手 想解析 XML 文档 我能够使用默认命名空间解析常规 XML 但使用 XML 例如
  • 数据库转储到文本文件,对“行已完成”有副作用

    我试图让一个函数从 select 语句将数据库 sql 转储写入文本文件 返回的量可能非常大 我有兴趣尽快完成此操作 对于大型结果集 我还需要记录每个 x 间隔写入的总行数以及自上一个 x 间隔以来每秒写入的行数 我有一个 map 实际上在
  • 如何将 Spider 搜索添加到我的网站? “无法连接到数据库”

    我下载了蜘蛛搜索引擎 http www sphider eu 我目前正在尝试通过本地主机运行它 我将其提取到根文件夹中 并用 HTML 创建了一个搜索栏 div div
  • 如何指示 SharePoint 场在特定服务器上运行计时器作业?

    我们有一个 SP 计时器作业 运行良好一段时间 最近 管理员在场中加入了另一台服务器 因此 SharePoint 决定开始在此另一台服务器上运行此计时器作业 问题是服务器上没有安装所有依赖项 即 Oracle 因此作业失败 我只是在这里寻找
  • NumPy 数组中元素的索引[重复]

    这个问题在这里已经有答案了 在Python中 我们可以使用以下方法获取数组中值的索引 index 但是对于 NumPy 数组 当我尝试执行以下操作时 decoding index i I get AttributeError numpy n
  • 使用 Java 在网页上查找链接

    使用Java将网页的源代码存储在字符串中 我想提取源代码中的所有url并输出它们 我对正则表达式之类的东西很糟糕 甚至不知道如何解决这个问题 任何帮助将不胜感激 不要使用正则表达式 https stackoverflow com quest
  • 将 jLabel 移动到 jPanel 中的不同位置(类似 Pacman 的游戏)

    我正在制作像吃豆人这样的游戏 到目前为止我才刚刚从网格开始 我启动了网格 但我需要弄清楚如何将某些内容移动到网格中的不同位置 以便当用户单击或我的幽灵移动时 它将显示在屏幕上 我怎样才能让它动起来 我尝试了很多不同的方法 但没有一个对我有用
  • 安装 RavenDb Embedded 时出现 Nuget 依赖错误

    我正在尝试在 ASP NET MVC 5 应用程序中安装 RavenDB Embedded 但出现以下依赖项错误 PM gt Install Package RavenDB Embedded Attempting to resolve de
  • 由于缺少服务结构包,不会添加依赖项

    启动一个新的空 NET Core 2 类库 我尝试使用 nuget 添加任何依赖项 但出现此错误 错误本地源 C Program Files Microsoft SDKs Service Fabric packages 不存在 但服务结构应
  • 在嵌套模型轨道中传递数组隐藏字段

    我认为有以下代码 参数在控制台中传递 Parameters authenticity token gt LJ ZME2lHZ7VwCDgPKX6OFe326fXSXo5UB4M0cPwbCE esthour gt rfp id gt 6 e
  • 在 ListView 顶部添加“正在加载”图像

    我想添加一个 正在加载 Image在我的顶部ListView当所有项目都在加载时 如果有很多项目正在加载 我仍然希望有一个良好的用户体验 所以我想要一个浮动的Image 动画 GIF 在我的上面ListView 如何解决这个问题 一旦有了浮
  • 在 Android Java 应用程序中使用 Kotlin AAR 时出现 java.lang.NoClassDefFoundError

    我必须在 Kotlin 中创建一个库 aar 并且必须在使用 Java 制作的 Android 应用程序中使用它 Kotlin 库有一个带有伴随函数的类 可以在 Java 应用程序中静态使用 当我在 Java 的 Android 应用程序中
  • data.table 1.8.1.:“DT1 = DT2”与 DT1 = copy(DT2) 不同吗?

    我注意到使用不同的赋值运算符时 data table 中存在一些不一致 对我来说不一致 的行为 我不得不承认我从来没有完全理解 和copy 之间的区别 所以也许我们可以在这里阐明一些观点 如果您使用 或 请执行以下命令 你就会明白我的意思
  • C# 中集中使用关键字

    有没有办法在 C 中制作单个 头 类型文件 在 C 中 您有类似 Mainheader h 的内容 其中包含您的所有包含内容 有没有一种方法可以对 C 执行类似的操作 其中您有一个包含所有 using 关键字的文件 现在我有很多使用 例如
  • MVC,从页面中的多个部分视图传回值

    当我尝试从包含相同部分视图两次的页面传回值时 我遇到了问题 我的类定义如下 public class Account IEntity public decimal CurrentBalance get set public List