模型绑定不适用于嵌套对象

     2023-03-08     30

关键词:

【中文标题】模型绑定不适用于嵌套对象【英文标题】:Model binding not working for nested object 【发布时间】:2019-08-27 11:26:34 【问题描述】:

我正在尝试在我的模型中绑定从邮递员发布的模型中的数据:

public class VariantModel

    public int Id  get; set;      
    public List<SubvariantModel> Subvariants  get; set; 


public class SubvariantModel

    public int Id  get; set; 
    public string Description  get; set; 
    public IFormFile Document  get; set; 

每个属性都被填充,但只有 Document 属性变为空,如您在此处看到的:

但令人惊讶的是,当我检查 http 请求对象时,我看到了该文件:

这就是我从 POSTMAN 发布数据的方式:

代码:

[HttpPost]
public void Post([FromForm]VariantModel emp)

    var d = HttpContext.Request;

谁能告诉我这里可能是什么问题?

更新:

【问题讨论】:

你的键名很奇怪。名字应该是Subvariants[0].Document,而不是Subvariants[0][Document]。令人惊讶的是,这实际上适用于IdDescription,但也许出于某种原因它根本不适用于IFormFile。看起来很奇怪,但老实说我没有看到任何其他问题。 @ChrisPratt 我也尝试过这样的 Subvariants[0].Document 但仍然为空,是的,确实我也没有得到这里的问题。这是 asp.net webapi 核心中的错误吗模型粘合剂? 一点也不。这是非常的基本代码,我几乎就像这样运行代码。只要帖子正文中的名称遵循正确的绑定约定(这些约定似乎如此),它就会绑定。 @ChrisPratt 那为什么现在不起作用。可能是您没有在嵌套模型中使用 IFormFile。有什么解决方案吗? 我刚刚用ASP.NET Core 2.0 测试了你的代码,一切对我来说都很好。您能否在 github 上分享您的项目并分享您通过 postman 执行的请求? 【参考方案1】:

这也是我遇到的问题。在 .NET Core v2.2 中将 IFormFile 作为视图模型属性嵌套是一个已知问题。

对我有用的修复是here。

【讨论】:

knockout.js remove 不适用于主视图模型中的嵌套视图模型和视图模型

】knockout.jsremove不适用于主视图模型中的嵌套视图模型和视图模型【英文标题】:knockout.jsremovedoesn\'tworkwithnestedviewmodelandviewmodelinmainviewmodel【发布时间】:2017-09-0116:11:08【问题描述】:<divdata-bind="with:SimpleListModel"><formdata-bi... 查看详情

猫鼬选择:假不适用于位置嵌套对象

】猫鼬选择:假不适用于位置嵌套对象【英文标题】:Mongooseselect:falsenotworkingonlocationnestedobject【发布时间】:2016-09-0401:48:12【问题描述】:我希望我的架构的location字段默认隐藏。我给它添加了select:false属性,但是选择文档时总... 查看详情

Formik 收音机不适用于嵌套对象值

】Formik收音机不适用于嵌套对象值【英文标题】:Formikradionotworkingwithnestedobjectvalues【发布时间】:2020-12-2101:54:20【问题描述】:我正在使用Formik。当我尝试使用嵌套对象为我的初始值渲染单选按钮时,根据他们在此处的文档:ht... 查看详情

模型绑定不适用于angular2中的选择[重复]

】模型绑定不适用于angular2中的选择[重复]【英文标题】:modelbindisnotworkingwithselectinangular2[duplicate]【发布时间】:2016-08-1410:18:06【问题描述】:我正在尝试设置下拉菜单的默认值,我为模型设置了默认值但它没有更新选择请看http... 查看详情

Spring JPA 更新不适用于嵌套对象

】SpringJPA更新不适用于嵌套对象【英文标题】:SpringJPAUpdatenotworkingonnestedobjects【发布时间】:2018-11-0414:54:40【问题描述】:我在使用SpringrestJPA(PUT方法)更新数据库数据时遇到问题。当我执行POST请求以插入数据时,它工作得很... 查看详情

模型绑定不适用于 ASP.NET Core 2 WebAPI 中的 POST 请求

】模型绑定不适用于ASP.NETCore2WebAPI中的POST请求【英文标题】:ModelbindingisnotworkingonPOSTrequestinASP.NETCore2WebAPI【发布时间】:2018-03-2700:09:39【问题描述】:这是我的模型。publicclassPatientpublicstringNameget;set;publicstringGenderget;set;publicdouble... 查看详情

ASP.NET Web API - 模型绑定不适用于 POST 上的 XML 数据

】ASP.NETWebAPI-模型绑定不适用于POST上的XML数据【英文标题】:ASP.NETWebAPI-ModelBindingnotworkingwithXMLdataonPOST【发布时间】:2012-10-1004:36:43【问题描述】:在使用带有ASP.NETWebAPI的XML数据进行POST时,我无法让模型绑定工作。JSON数据工作... 查看详情

客户端验证不适用于重用和嵌套的复杂属性

...序,我尝试在.cshtml文件的不同位置重用嵌套的复杂视图模型类。重用的复杂视图模型命名为SchoolPersonViewModel,有很多属性,Phone和 查看详情

MVC4 webapi中的反序列化/模型绑定不适用于数组

】MVC4webapi中的反序列化/模型绑定不适用于数组【英文标题】:Deserialization/modelbindinginMVC4webapidoesnotworkwitharrays【发布时间】:2012-03-2411:18:02【问题描述】:我正在使用新的WebApi,它是MVC4测试版的一部分。我有以下课程:publicclass... 查看详情

MakeValid 不适用于单个模型对象

】MakeValid不适用于单个模型对象【英文标题】:MakeValidnotworkingforasinglemodelobject【发布时间】:2018-01-2407:42:22【问题描述】:我正在尝试使用MakeValid来修复(验证)我的几何字段。我可以通过单行获取和更新来使其工作:fromdjango.... 查看详情

RxUI ObservableAsPropertyHelper 不适用于 XAML 绑定

...发布时间】:2015-03-2801:51:46【问题描述】:我有以下视图模型类(基于RxUIdesignguidelines):publicclassSomeViewModel:ReactiveObjectprivatereado 查看详情

wxlua 绑定不适用于我使用 SWIG 制作的着色器对象

】wxlua绑定不适用于我使用SWIG制作的着色器对象【英文标题】:wxluabindingsdoesnotworkwithmyshaderobjectsmadeusingSWIG【发布时间】:2009-11-0605:44:59【问题描述】:我用wxwdigets做了一个类//wrapperoverwxIPV4addressclassIPV4addressLua:publicwxIPV4addresspubli... 查看详情

模型绑定不适用于 asp.net 核心 Web api 控制器操作方法中的 Stream 类型参数。(即使使用自定义流输入格式化程序)

】模型绑定不适用于asp.net核心Webapi控制器操作方法中的Stream类型参数。(即使使用自定义流输入格式化程序)【英文标题】:ModelbindingnotworkingwithStreamtypeparameterinasp.netcorewebapicontrolleractionmethod.(Evenwithcustomstreaminputformatter)【发布... 查看详情

嵌套标题不适用于 Handsontable 反应组件

】嵌套标题不适用于Handsontable反应组件【英文标题】:NestedHeaderisnotworkingonHandsontablereactcomponent【发布时间】:2018-12-2600:42:21【问题描述】:我正在使用@handsontable/react组件。我无法为表格提供嵌套标题。我不确定这个插件是否支... 查看详情

Prerender SPA 插件不适用于嵌套路由

】PrerenderSPA插件不适用于嵌套路由【英文标题】:PrerenderSPAPlugindoesnotworkwithnestedroutes【发布时间】:2018-04-0608:52:56【问题描述】:我正在使用Vue2、Webpack、vue-router和PrerenderSpa插件。我在尝试预渲染嵌套路由时遇到了问题。该插件... 查看详情

嵌套 url 不适用于 Django REST 框架

】嵌套url不适用于DjangoREST框架【英文标题】:NestedurlsarenotworkingwithDjangoRESTframework【发布时间】:2014-12-3106:48:01【问题描述】:url.pyrouter.register(r\'Costumers\',CostumerViewSet,base_name=\'costumer\').register(r\'Agreements\',AgreementVi 查看详情

为啥此模型绑定在 Razor 页面中不起作用

】为啥此模型绑定在Razor页面中不起作用【英文标题】:WhythisModelBindingnotworkinginRazorPage为什么此模型绑定在Razor页面中不起作用【发布时间】:2022-01-1108:06:17【问题描述】:我正在使用带有简单示例的ASP.NETCore3.1来测试模型绑定... 查看详情

嵌套组件不适用于 Angular 中的路由

】嵌套组件不适用于Angular中的路由【英文标题】:Nested-ComponentsnotworkingwithRoutinginAngular【发布时间】:2020-12-2318:20:44【问题描述】:我正在尝试在自己的项目中学习角度,我从处理路由路径:/开始,即在(app.routing.module.ts)中渲染... 查看详情