ASP.NET MVC 模型与表单元素名称中的破折号绑定

2024-03-22

我一直在互联网上搜索,试图找到一种方法,将表单元素中的破折号容纳到 MVC 2、3 甚至 4 中 ASP.NET 控制器的默认模型绑定行为中。

作为一名前端开发人员,我更喜欢 CSS 中的破折号,而不是驼峰命名法或下划线。在我的标记中,我想要做的是这样的:

<input type="text" name="first-name" class="required" />
<input type="text" name="last-name" class="required" />

在控制器中,我将传递一个 C# 对象,如下所示:

public class Person
{
      public string FirstName { get; set; }
      public string LastName { get; set; }
      //etc...
}

有什么办法可以延长Controller类通过一些正则表达式或其他行为来适应这种情况?我讨厌我必须做这样的事情:

<input type="text" name="person.firstname" class="required" />

甚至这个:

<input type="text" name="isPersonAttending" class="required" />

想法?


您始终可以创建自己的模型绑定器。

下面是一个实现绑定器的示例,该绑定器支持将别名添加到模型属性:

http://ole.michelsen.dk/blog/bind-a-model-property-to-a- Different-named-query-string-field/ http://ole.michelsen.dk/blog/bind-a-model-property-to-a-different-named-query-string-field/

并用它做类似的事情:

[ModelBinder(typeof(AliasModelBinder))]
public class Person
{
      [BindAlias("first-name")]
      public string FirstName { get; set; }
      [BindAlias("last-name")]
      public string LastName { get; set; }
      //etc...
}

EDIT:正如博主所说,这个实现是基于 Andras 对以下 SO 问题的回答:Asp.Net MVC 2 - 将模型的属性绑定到不同的命名值 https://stackoverflow.com/questions/4316301/asp-net-mvc-2-bind-a-models-property-to-a-different-named-value#answer-4316327

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

ASP.NET MVC 模型与表单元素名称中的破折号绑定 的相关文章

  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • 在 JavaScript 中递归构建 Promise 链 - 内存注意事项

    In 这个答案 https stackoverflow com a 29906627 3478010 递归地构建承诺链 稍微简化一下 我们有 function foo function doo always return a promise
  • 将箭头放在 3d 图中的向量上

    I plotted the eigenvectors of some 3D data and was wondering if there is currently already a way to put arrowheads on th
  • 存储 ASP.NET 密钥、密码的安全方法

    存储网站密钥和 或密码的最佳实践是什么 这些密钥用于各种第 3 方 Web 服务 最好将它们放在 Web config 文件中 数据库中或以某种方式加密吗 您可以将加密值存储在 config 文件中 ASP NET 2 0 将即时解密它们
  • 如何查看我的 Redis 数据库 current_size?

    我知道 redis cli 以及 info 和 config 命令 但是 他们没有任何说明当前数据库大小的信息 我怎样才能弄清楚这一点 使用INFO命令 完整详细信息在这里 http redis io commands info http
  • VSCode 1.14.0 7月更新有重大问题:如何回滚?

    因此 新的 VSCode 更新版本 1 14 0 会导致以下主要问题 CPU 使用率高 导致冻结 随机崩溃 扩展不可用 IntelliSense 工作一半时间 所以我的问题是如何将 VSCode 回滚到以前的版本而不丢失我的配置 1 14
  • 如何测试放置在子文件夹中的 django 应用程序?

    我在测试分组在子文件夹中的 django 应用程序时遇到问题 好吧 让我解释一下情况 标准 django 项目结构如下所示 django project appname1 appname2 appname3 lib tests docs s
  • 将 NSColor 转换为 RGB

    我正在尝试将 NSColor 转换为 RGB 但它似乎给出了完全错误的结果 NSColor testColor NSColor colorWithCalibratedWhite 0 65 alpha 1 0 const CGFloat co
  • 输入类型提交与输入类型按钮

    我一直在尝试用 PHP 解决一个恼人的行为 我认为 也许你们中的一些人也遇到过同样的情况并有一些想法 我有一个 html 表单 并且使用一个带有 onClick 事件的元素来调用 javascript 函数 处理脚本的内容后 我执行 for
  • 可以更换大开关吗?

    我有一个名为 ReportController aspx 的页面 其目的是根据查询字符串参数实例化报告 类 switch Request QueryString Report case ReportA CreateReportAReport
  • Matplotlib rcparams (autolimit_mode) 用于单个图形

    我对新的 Matplotlib 2 0 0 有疑问 默认情况下 新的 autolimit mode 值会向框架添加填充 我想避免它变成一个数字 如果我更改 rcParams 则更改会影响任何生成的图形 我可以更改单个图形的此参数而不影响其余
  • 通过公式而不是脚本在单元格中使用 Google Sheets 文件名?

    有没有FORMULA这将在单元格中显示文件的名称 我找到了可以做到这一点的脚本 可以显示工作表名称的公式 但没有找到可以显示文件名的公式 如果我必须诉诸剧本 那就这样吧 但如果可能的话我想使用公式 如果以前有人问过这个问题 请指出该帖子 我
  • Object.values() 的替代版本

    我正在寻找替代版本Object values 功能 As 此处描述 https developer mozilla org en US docs Web JavaScript Reference Global Objects Object
  • 以数组形式遍历不平衡二叉树

    不平衡 或非堆 二叉树可以使用数组表示 如下所示 array 1 2 null 3 4 5 6 null 7 8 null 1 2 null 3 4 5 6 null 7 8 null 如何使用给定的数组进行树遍历 更具体地说 如何计算父母
  • 如何在颤振中的当前位置创建圆圈

    我正在开发 flutter 项目 我必须在谷歌地图上的当前位置上画一个圆圈 有人知道吗 我想要这样的颤振 提前致谢 此功能现已在 google maps flutter 包中提供 https pub dev documentation go
  • 使用facet_wrap和geom_segment删除不必要的y轴点

    我使用以下命令将 y 轴点映射到 x 轴geom segment 然后使用facet wrap将数据分成两个图 然而 y 轴点都显示在这两个图上 我怎样才能只拥有与每个相关的必要的 y 轴点facet wrap 示例代码 dat lt st
  • 无法调整图表边距

    我创建了一个图表 但它在 Y 轴和图表边框之间有一个左边距 我怎样才能让它变成0 是否可以在图表和边框之间定义 5px 的统一边距 左 上 右 下 我的图表代码如下 Chart chart new Chart AntiAliasing An
  • 使用 ObjectInputStream 读取文件时出现 EOFException [重复]

    这个问题在这里已经有答案了 我基本上有一个类似的问题 如此处所述 Java中读取objectinputstream时出现EOF异常 https stackoverflow com q 2308128 1065197 但我找不到干净代码的答案
  • jQuery 1.4.1 中缺少 JSON stringify?

    显然 jQuery 能够将给定的对象或字符串解码为 JSON 对象 但是 我有一个 JS 对象 需要将其 POST 回服务器 并且我在 jQuery 中找不到包装 JSON stringify 函数的实用程序 Chrome Safari 4
  • 在运行时改变对象的行为

    如何在运行时更改对象的行为 使用C 我举一个简单的例子 我有课Operator包含一个方法operate 让我们假设它看起来像这样 double operate double a double b return 0 0 用户将给出一些输入值
  • ASP.NET MVC 模型与表单元素名称中的破折号绑定

    我一直在互联网上搜索 试图找到一种方法 将表单元素中的破折号容纳到 MVC 2 3 甚至 4 中 ASP NET 控制器的默认模型绑定行为中 作为一名前端开发人员 我更喜欢 CSS 中的破折号 而不是驼峰命名法或下划线 在我的标记中 我想要