MVC 嵌套模型绑定的问题

问题描述

内容:一个商品里有多张图片,图片有2个信息:名称、描述前台代码:<formaction=""method="post"><inputname="Id"value="1"/><inputname="ProductName"value="产品1"/><inputname="Name"value="图片1"/><inputname="Desc"value="图片描述2"/><inputname="Name"value="图片2"/><inputname="Desc"value="图片描述1"/><inputtype="submit"value="确定"/></form>

publicclassProductModel{publicintId{get;set;}publicstringProductName{get;set;}publicIEnumerable<ImageModel>Images{get;set;}}publicclassImageModel{publicstringName{get;set;}publicstringDesc{get;set;}}

我进行模型绑定不成功,ImageModel的值为Null[HttpPost]publicActionResultIndex(ProductModelclass1){returnView();}

问题:MVC默认的模型绑定器里有提供对我这种情况的绑定?如果有,我需要修改哪些地方?如果没有,对于这种需要,应该用什么方式比较好?

解决方案

解决方案二:
你给这个模型赋值了吗?没看到代码
解决方案三:
引用1楼wangjun8868的回复:

你给这个模型赋值了吗?没看到代码

这是MVC默认的模型绑定,不用手写赋值,publicActionResultIndex(ProductModelclass1)这里传进去的模型就进行了赋值操作了
解决方案四:
引用2楼qiangshengpeng的回复:

Quote: 引用1楼wangjun8868的回复:
你给这个模型赋值了吗?没看到代码

这是MVC默认的模型绑定,不用手写赋值,publicActionResultIndex(ProductModelclass1)这里传进去的模型就进行了赋值操作了

MVC里是不用给控件赋值(如果控件是用For绑定的),但是模型不赋值,计算机怎么读取数据到模型难道咱们两个理解的不是一回事?
解决方案五:
引用3楼wangjun8868的回复:

Quote: 引用2楼qiangshengpeng的回复:
Quote: 引用1楼wangjun8868的回复:
你给这个模型赋值了吗?没看到代码

这是MVC默认的模型绑定,不用手写赋值,publicActionResultIndex(ProductModelclass1)这里传进去的模型就进行了赋值操作了

MVC里是不用给控件赋值(如果控件是用For绑定的),但是模型不赋值,计算机怎么读取数据到模型难道咱们两个理解的不是一回事?

[HttpPost]publicActionResultIndex(ProductModelclass1){returnView();}我的意思是post请求过来的的request通过这个方法已经赋值给ProductModel对应的字段了,但是还有部分字段没有赋值过来,所以来请教一下
解决方案六:
引用4楼qiangshengpeng的回复:

Quote: 引用3楼wangjun8868的回复:
Quote: 引用2楼qiangshengpeng的回复:
Quote: 引用1楼wangjun8868的回复:
你给这个模型赋值了吗?没看到代码

这是MVC默认的模型绑定,不用手写赋值,publicActionResultIndex(ProductModelclass1)这里传进去的模型就进行了赋值操作了

MVC里是不用给控件赋值(如果控件是用For绑定的),但是模型不赋值,计算机怎么读取数据到模型难道咱们两个理解的不是一回事?

[HttpPost]publicActionResultIndex(ProductModelclass1){returnView();}我的意思是post请求过来的的request通过这个方法已经赋值给ProductModel对应的字段了,但是还有部分字段没有赋值过来,所以来请教一下

懂你的意思了,你post过来的数据有一部分是空的,是因为界面上的控件和模型是以一一对应的,如果是一多的模型(涉及操作多个表)控件是无法只能探测这种层级结构的(其实还有更复杂的模型),也许MVC有这种本事,但是据我了解我还真不知道...
解决方案七:
引用4楼qiangshengpeng的回复:

Quote: 引用3楼wangjun8868的回复:
Quote: 引用2楼qiangshengpeng的回复:
Quote: 引用1楼wangjun8868的回复:
你给这个模型赋值了吗?没看到代码

这是MVC默认的模型绑定,不用手写赋值,publicActionResultIndex(ProductModelclass1)这里传进去的模型就进行了赋值操作了

MVC里是不用给控件赋值(如果控件是用For绑定的),但是模型不赋值,计算机怎么读取数据到模型难道咱们两个理解的不是一回事?

[HttpPost]publicActionResultIndex(ProductModelclass1){returnView();}我的意思是post请求过来的的request通过这个方法已经赋值给ProductModel对应的字段了,但是还有部分字段没有赋值过来,所以来请教一下

看前台赋值代码是否少了字段,而且你的实体对象里面存的是单个你页面上面是2个这种情况要循环处理吧
解决方案八:
你前台得处理下imageModel你得把它设置成数组
解决方案九:
@foreach(ImageModeloInfoinProductModel.Images){<inputname="Name"value="@info.name"/><inputname="Desc"value="@info.Decs"/>}

解决方案十:
模型上的属性要和input上的name属性对应如果自定义模型不能处理自定义的复杂属性那么自己用Model.Para=Request.Form[""]填充或者看看下面http://www.cnblogs.com/lzhp/archive/2013/03/30/2987759.html

时间: 2024-08-30 21:00:49

MVC 嵌套模型绑定的问题的相关文章

ASP.NET MVC数组模型绑定详解_实用技巧

在ASP.NET MVC中使用Razor语法可以在视图中方便地展示数组,如果要进行数组模型绑定,会遇到索引断裂问题,如下示例: <input type="text" name="[0].Name" /> <input type="text" name="[1].Name" /> <input type="text" name="[2].Name" />

ASP.NET Core MVC/WebAPi 模型绑定探索

前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用到了,你再去看理论性的文章时才会豁然开朗,这是我一直以来学习技术的方法.本文我们来讲解.NET Core中的模型绑定. 话题 在ASP.NET Core之前MVC和Web APi被分开,也就说其请求管道是独立的,而在ASP.NET Core中,WebAPi和MVC的请求管道被合并在一起,当我们建立控

购物车-MVC模型绑定遇到的问题

问题描述 MVC模型绑定遇到的问题 在实现购物车时,我的其他功能都可以正常运行,只有更新购物车数量这个功能中Carts绑定不到 视图代码: @model IEnumerable<MVCShopping.Models.Cart> @{ var ajaxOption = new AjaxOptions() { OnSuccess = "RemoveCartSuccess", OnFailure = "RemoveCartFailure", Confirm =

ASP.NET MVC 模型绑定的 6 个建议

原文名称:6 Tips for ASP.NET MVC Model Binding 原文地址:http://odetocode.com/Blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx ASP.NETMVC中的Model Binding使用起来非常简单.你的Action方法需要数据,在传入的HTTP请求中携带着你需要的数据,数据可以在请求的表单数据中,还可能在你的URL地址本身中.通过DefaultM

ASP.NET MVC模型绑定的6个建议,徐汇区网站设计

ASP.NET MVC中的Model Binding使用起来非常简单.你的Action方法需要数据,在传入的HTTP请求中携带着你需要的数据,数据可以在请求的表单数据中,还可能在你的URL地址本身中.通过DefaultModelBinder,可以神奇地将表单中的数据和路由中的数据转换到对象中.Model Binder使得你的控制器代码可以干净地从请求以及关联的环境中分离出来. 这里有一些关于在MVC项目中更好使用Model Binding的建议. Tip#1:最好使用Model Binding而

《Pro ASP.NET MVC 3 Framework》学习笔记之三十【模型绑定】

模型绑定(Model Binding)是使用浏览器发起Http请求时的数据创建.NET对象的过程.我们每一次定义带参数的action方法时就已经依靠了模型绑定--这些参数对象是通过模型绑定创建的.这一章会介绍模型绑定的原理以及针对高级使用必要的定制模型绑定的技术. 理解模型绑定(Understanding Model Binding) 想象下我们创建了一个控制器如下: View Code using System; using System.Web.Mvc; using MvcApp.Model

通过Struts应用MVC设计模型

设计 模型--视图--控制器(Model-View-Controller,MVC)体系突出了Servlets和JSP的优点,同时也令它们的缺点最小化.在实现中,用户请求被发送到一个控制器servlet,该servlet决定请求的性质,并且根据请求的类型传送给适合的处理器.每个处理器都和一个特别的模型相关,里面封装有商业逻辑来执行一些特别的函数集合.处理完毕后,结果会发送回处理器,处理器选择适合的视图显示它. Struts最早于2002年5月作为Jakarta项目的组成部分问世,Jakata项目由

通过实例模拟ASP.NET MVC的Model绑定机制:数组

[续<通过实例模拟ASP.NET MVC的Model绑定机制:简单类型+复杂类型]>]基于数组和集合类型的Model绑定机制比较类似,对于绑定参数类型或者参数类型的某个属性为数组或者集合,如果ValueProvider根据对应的Key能够匹配多条数据,那么这些数据最终将会转换为绑定的数组/集合的元素.此外,针对数组/集合的Model绑定还支持基于索引的方式.[源代码从这里下载] 一.基于名称的数组绑定 对于针对NameValueConllectionProvider来说,通过GetValue方

iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序

一.plist文件和项目结构图 说明:这是一个嵌套模型的示例 二.代码示例: YYcarsgroup.h文件代码: 1 // 2 // YYcarsgroup.h 3 // 07-汽车展示(高级) 4 // 5 // Created by apple on 14-5-28. 6 // Copyright (c) 2014年 itcase. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 11 @interfa