MVC Web API 绑定模型到派生类

2024-01-03

我正在研究如何将模型绑定到 MVC Web API 中的派生类,我遇到的问题是我认为我已经找到了大约 5 种方法......

我所拥有的是:

型号->

  • 模型库
  • 模型A:模型库
  • 模型B:模型库

然后控制器容器该方法:

Post(ModelBase model) {}

发布的数据将是 ModelA 或 ModelB,我想将信息添加到 HTTP 请求元数据(认为 Content-Type: application/json; type=ModelA),并基于此告诉 MVC 将发布的内容绑定到 A 或B.

在代码中我想象的是这样的:

Bind(request, bindingContext)
{
    // check request headers and then...
    bindingContext.ModelType=typeof(ModelA);

    // let the framework continue doing its thing deserializing the content
    base.Bind(request, bindingContext);
}

其他人都是如何做到这一点的?或者你会如何建议这样做?

我见过 ParameterBinding、IModelBinder、MediaTypeFormatter 等。MVC 很棒,但有时很难想到应该使用哪个钩子......

EDIT:

为了添加更多信息,ModelBase很可能会成为一个接口,并且将有数百个具体类。

它将用于 CQRS:命令,然后是 ConcreteCommandA、ConcreteCommandB,这些将被推送到调度程序,我不想为每个命令执行一个操作,一个接收这些命令的中央操作,将它们反序列化为正确的类型并转发它们。


None

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

MVC Web API 绑定模型到派生类 的相关文章

  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 获取上季度的结束日期

    对于给定日期 如何获取上季度的结束日期 我需要运行一项工作 其中考虑到了这一点 编辑 第一季度是一月 二月 三月 2号是四月 五月 六月等 任何帮助表示赞赏 谢谢 基本上 找出当前季度是哪个 返回上一季度的最后日期 3月31日 6月30日
  • 为 Linux 应用程序创建安装程序 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个小型跨平台应用程序 我需要一些有关如何在 Linux 中安装它的建议 我在 Window
  • 有CUDA智能指针吗?

    如果没有 释放的标准方法是什么cudaMalloc当抛出异常时ed内存 请注意 我无法使用 Thrust 您可以使用RAII http en wikipedia org wiki Resource Acquisition Is Initia
  • 使用 Laravel 在 FullCalendar 中重复发生事件

    I m working on a fullcalendar module for my page I could display Events on calendar without the recurring feature But wh
  • 是否存在始终返回零结果的 SQL 查询? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如果有特定于 MySQL PostgreSQL Oracle 的解决方案 我对它们都很好奇 根据 DBMS 以下一项或多项将起作用 S
  • 如何获取要显示的类型提示?

    我见过 youtube 等人使用 rust analyzer 插件在 VSC 中使用 Rust 他们会显示可选的类型注释 即使它不一定写在代码中 就像我打字一样foo a b 在编辑器中 它会自动显示foo a A b B 哪里的 A an
  • 取消引用指向结构体指针的指针

    gcc 4 7 2 c89 Hello 我试图取消引用指向结构体指针的指针 当我执行以下操作时 我收到此错误消息 LOG INFO CHANNEL ID d channel gt id 编译错误 request for member id
  • 连接黄瓜检查java中的场景失败

    当我正在阅读如何在失败时为黄瓜场景添加清理时 我在互联网上找到了这段代码 After do s if s failed If you are on an iOS Device driver quit sleep time for drive
  • 为什么我不能通过继承 OrderedDict 和 defaultdict 来创建默认的有序字典?

    我第一次尝试将两个词典的功能结合起来collectionsmodule 的作用是创建一个继承它们的类 from collections import OrderedDict defaultdict class DefaultOrderedD
  • 我可以对 WordPress.com 上托管的网站使用 REST API [已关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我在 WordPress com 上托管了一个博客 当我尝试制作一个GET请求检索帖子时我收到 未找到 html 页面 https alex
  • 如何在 React 项目的 axios 拦截器中添加全局加载/旋转效果

    我在 React 项目中使用 axios 进行 API 调用 我想在 axios 拦截器中的 api 调用的请求和响应之间全局添加加载或旋转效果 这是我的拦截器的代码 import Axios from axios Axios interc
  • 没有与 lambda 匹配的函数 std::forward

    考虑以下代码 其灵感来自 Barry 的回答this https stackoverflow com a 42036525 882932问题 Include include
  • 如何以编程方式将视图限制为 ConstraintLayout 中的父视图

    我想使用约束布局以编程方式创建 TextView 或任何其他视图 textView 在 XML 中看起来像这样
  • 空结构背后的目的?

    C 标准库中 auto ptr 的声明 namespace std template
  • IsDate数组公式

    刚刚注意到isDate不适用于arrayformula Case 想要过滤日期的所有值 使用公式 FILTER data ISDATE data 预期结果 8 28 2018 Got N A Question 为什么 其他检查工作在filt
  • Jenkins 管道将所有参数传递给下游作业

    我有一个名为的管道作业buildall看起来像这样 pipeline stages stage job1 build job job1 The buildalljob有25个参数 我想通过所有buildall的参数降至job1 有没有一种简
  • 在 WebView 中显示 URL

    在我的 JsonParsing 中 我从这个 json 中获取了 url 我需要像在 web 视图中一样显示该 Url 链接 我该怎么做 Code在这儿 TextView tv TextView findViewById R id text
  • iOS:MapView 注释未显示图钉

    由于某些奇怪的原因 viewForAnnotation 仅适用于 viewDidLoad 中设置的引脚 这是一个测试引脚 在其他地方加载的引脚在按下时不会被注释 我已经设置了代表 我认为这与mapView调用中的标识符有关 但我不确定如何解
  • Sprite 套件中的 iCarousel

    解释 我正在尝试构建一个类似于 Crossy Road 的角色选择菜单 如您所见here http www therockstargamers com wp content uploads 2015 04 crossy road chara
  • MVC Web API 绑定模型到派生类

    我正在研究如何将模型绑定到 MVC Web API 中的派生类 我遇到的问题是我认为我已经找到了大约 5 种方法 我所拥有的是 型号 gt 模型库 模型A 模型库 模型B 模型库 然后控制器容器该方法 Post ModelBase mode