在 ASP.NET MVC 中使用多个部分时出现重复的输入 id

2024-01-26

我有三个部分视图,每个视图都具有单独的模型强类型。每个视图都包含它自己的表单并提交不同的操作。某些模型包含具有相同名称的属性,当我使用 html 帮助器方法创建文本框和标签时,我最终会在页面上出现重复的 html id。

部分_住宅景观

@model MyProject.Models.ResidentialModel

@using (Html.BeginForm("Residential", "Transaction"))
{
  @Html.LabelFor(m => m.PersonName)
  @Html.TextBoxFor(m => m.PersonName)

  @Html.LabelFor(m => m.ReferenceNumber)
  @Html.LabelForm(m => m.ReferenceNumber)

  <input type="submit" value="Submit" />
}

部分_业务视图

@model MyProject.Models.BusinessModel

@using (Html.BeginForm("Business", "Transaction"))
{
  @Html.LabelFor(m => m.BusinessName)
  @Html.TextBoxFor(m => m.BusinessName)

  @Html.LabelFor(m => m.ReferenceNumber)
  @Html.LabelForm(m => m.ReferenceNumber)

  <input type="submit" value="Submit" />
}

普通视图

<h2>Residential Transaction</h2>
@Html.Partial("_Residential")

<h2>Business Transaction</h2>
@Html.Partial("_Business")

我得到的输出如下所示:

<h2>Residential Transaction</h2>
<form action="/Transaction/Residential" method="post">
  <label for="PersonName">Person Name:</label>
  <input type="text id="PersonName" name="PersonName" />

  <label for="ReferenceNumber">Reference Number:</label>
  <input type="text" id="ReferenceNumber" name="ReferenceNumber" />

  <input type="submit" value="Submit" />
</form>

<h2>Business Transaction</h2>
<form action="/Transaction/Business" method="post">
  <label for="BusinessName">Business Name:</label>
  <input type="text" id="BusinessName" name="BusinessName" />

  <label for="ReferenceNumber">Reference Number:</label>
  <input type="text" id="ReferenceNumber" name="ReferenceNumber" />

  <input type="submit" value="Submit" />
</form>

由于 ReferenceNumber 存在于两个模型中,因此我在页面上得到了重复的 id。我发现我可以将额外的 htmlAttributes 参数传递给 TextBoxFor 来更改 id。

@Html.TextBoxFor(m => m.ReferenceNumber, new { id = "ResidentialReferenceNumber" })
...
@Html.TextBoxFor(m => m.ReferenceNumber, new { id = "BusinessReferenceNumber" })

这修复了输入上的 id,但标签上的“for”属性仍然具有错误的值。我查看了 LabelFor() 的各种重载,与 TextBoxFor 不同,它没有 htmlAttributes 属性。有什么方法可以告诉模型或视图为这些字段使用不同的 id 吗?


MVC 帮助程序没有考虑到您可以在视图中拥有多个模型。所有具有相同名称的属性都将获得重复值(每个模型一个值)。

也就是说,如果住宅交易和商业模式有Name属性,你的 html 表单将有两个<input type="text" name="Name" /> fields.

如果将所有模型添加到同一视图模型并使用,我不确定它是如何工作的Html.TextBoxFor(m => m.ResidentalTransaction.Id);

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

在 ASP.NET MVC 中使用多个部分时出现重复的输入 id 的相关文章

随机推荐

  • math.atan2 的逆?

    函数的反函数是什么 math atan2 我在 Lua 中使用它 我可以得到相反的结果math atan by math tan 但我在这里迷路了 EDIT 好的 让我向您提供更多详细信息 我需要计算 2 点 x1 y1 和 x2 y2 之
  • 用于阅读的 Apache POI Streaming (SXSSF)

    我需要读取大型 Excel 文件并将其数据导入到我的应用程序中 由于 POI 需要占用大量堆来工作 因此经常抛出OutOfMemory错误 我发现有一个流媒体用于以串行方式处理 Excel 数据的 API 而不是将文件完全加载到内存中 我创
  • Android 通过 HTTP Post 请求发送 Base64 编码的图像

    我完全迷失了 我正在尝试通过 Android 应用程序将照片发送到 php 网页 理论上一切都应该是正确的 但目标数据已损坏或我不知道 我可以获取发布数据 我尝试使用一个简单的字符串 它工作正常 但对于一个大文件 数据似乎已损坏 publi
  • 使用 svyrecvar 获取“调查”R 包中统计量的方差

    我正在写一个扩展surveyR 包 我的函数使用复杂的调查数据估计峰度 但我不确定如何获得这些统计数据的标准误差 例如现有函数的输出 例如svymean and svytotal svykurt lt function x design n
  • 莱布尼茨发布中的姿态数据间歇性丢失

    我刚刚将我的设备更新到最新的 Leibniz 版本 以下是一些观察 问题 1 我的应用程序现在存在长时间 2 3 秒 的间歇期 其中姿势数据无效 我认为问题出在驱动程序中 因为该问题也出现在 Tango Explorer 中 只需启动资源管
  • 有人知道如何从 Firefox 运行可执行文件吗?

    我试图开发一个 Firefox 插件来通过浏览器的上下文菜单 或 VBScript 文件或 CMD 命令 运行 exe 文件 我尝试了这些但没有结果 使用签名的 jar 文件 使用 Flash fs 命令 使用 JavaScript Act
  • Clang 链接错误:对 LLVM pass 添加的函数调用的未定义引用

    所以我正在关注这个教程https www cs cornell edu asampson blog llvm html https www cs cornell edu asampson blog llvm html通过添加对外部函数 在
  • 递归获取树的所有父母和孩子

    我有一个 MySQL 表 Id parent id title 1 0 Student Management 2
  • 默认字体系列是什么?

    这返回null DefaultFontFamily Font SystemFontOfSize NamedSize Default FontFamily 还有这个 DefaultFontFamily new Label FontFamily
  • JSR-303 枚举字段的 Bean 验证

    我有一个简单的豆子enum field public class TestBean Pattern regexp A B does not work private TestEnum testField getters setters en
  • 2 同一个表的外键可能会导致循环或者多重级联路径

    圣诞节快乐 我正在寻找一种替代数据库设计来避免这种 超级安全 错误 在表 2 上引入 FOREIGN KEY 约束 1 可能会导致循环或多级联路径 指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION 或
  • 在 ITC 审查期间观看 OS3、UIRequiredDeviceCapability 问题

    在试飞审查期间 我遇到了以下问题 来自苹果 2 3 性能 准确的元数据性能 2 3 我们无法在运行的 Apple Watch 上安装应用程序扩展 操作系统3 Info plist 中的 UIRequiredDeviceCapability
  • 不可变的初始化最终字段是否应该始终设为静态?

    我想知道非空白 初始化的不可变最终字段是否有合法的用例 换句话说 class Foo private final String bar bar Versus class Foo private static final String BAR
  • Pandas GroupBy 过滤

    我希望了解如何过滤 groupby 对象 我通过以下方式生成 groupby df groupby Order ProductLine ProductType size 结果是 Order ProductLine ProductType Q
  • 如何在 AngularJS 中刷新使用 $resource 服务获取的本地数据

    我有 AngularJS 应用程序 它使用 resource 服务使用 query 方法检索数据并使用 model save 方法创建新数据 这完全按照文档所说的那样工作得很好 我的问题是在更改后如何首先更新使用 MyService que
  • 如何解决 java jackcess 依赖错误?

    我正在尝试显示来自 MS Access 数据库的数据 我正在使用 Jackcess 库 但出现了一个依赖性错误 但我不知道如何解决 这是我的代码和错误 import com healthmarketscience jackcess impo
  • 将 typeFace 设置为 NumberPicker

    如何更改 NumberPicker 中的字体类型 我尝试这样做 但字体没有改变 任何想法 P S 颜色和文字大小发生变化 public class NumberPicker extends android widget NumberPick
  • 如何在 Telethon 中正确使用 iter_download 功能进行多连接下载

    我一直在尝试实现一个多线程电报下载客户端 对于单个下载 我们可以简单地使用 download media 功能 但 telethon 提供了 iter download 函数 根据文档 它用于流媒体 还包括暂停和恢复功能 我们可以使用它来通
  • 如何使用 superagent/supertest 链接 http 调用?

    我正在使用 supertest 测试 Express API 我无法在测试用例中获得多个请求来使用超级测试 以下是我在测试用例中尝试的内容 但测试用例似乎只执行最后一个调用 即 HTTP GET it should respond to G
  • 在 ASP.NET MVC 中使用多个部分时出现重复的输入 id

    我有三个部分视图 每个视图都具有单独的模型强类型 每个视图都包含它自己的表单并提交不同的操作 某些模型包含具有相同名称的属性 当我使用 html 帮助器方法创建文本框和标签时 我最终会在页面上出现重复的 html id 部分 住宅景观 mo