博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC复杂类型的模型绑定
阅读量:4950 次
发布时间:2019-06-11

本文共 1999 字,大约阅读时间需要 6 分钟。

1,属性为引用类型(非集合,非数组)

//模型1 public class Contact  {      public string Name { get; set; }      public string PhoneNo { get; set; }      public string EmailAddress { get; set; }      public Address MyAddress { get; set; }  }  public class Address  {      public string Province { get; set; }      public string City { get; set; }      public string District { get; set; }      public string Street { get; set; }  }
//请求表单范例,name属性,具有显著的层次结构,注意子属性前缀用的是属性名MyAddress

 

public ActionResult Action(Contact foo){}

 

2,基于名称的简单类型数组绑定(名称必须相同)

//数据源范例   

 

Public ActionResult ActionMethod(string[] foo){}//action的参数名“foo”,必须与表单中的name的值匹配

 

 

3,基于索引的对象数组绑定(索引必须从0开始,且连续,不连续会导致后面的绑定丢失)

//请求表单范例
public ActionResult Index(Contact[] contacts){}

4,集合(除数组和字典之外的所有实现IEnumerable<T>接口的类型)

//请求表单范例       

 

//集合范例public ActionResult Action(IEnumerable
contacts){
foreach (var contact in contacts){}
}

5,字典(实现了接口IDictionary<TKey,TValue>的类型)

//请求表单范例,注意Key的值不能重复,且索引要连续         
public ActionResult Action(IDictionary
contacts) { foreach (string key in contacts.Keys) {
Contact contact = contacts[key]; } }

 6,混合应用,属性是数组

public class QuizAnswer  {      public int QuizId { get; set; }      public string[] QuizAnswerArray { get; set; }//答案为数组       }
//控制器代码public ActionResult SubmitAnswer(QuizAnswer[] answerArray){foreach (var answer in answerArray)            {              }}

 7,混合应用,属性是集合

模型:属性是集合的情况

//公司public class Company  {      public string Name { get; set; }      public string City { get; set; }      public IList
JobList{ get; set; }//这里是个集合 }//职位 public class Job { public string Title{ get; set; } public string Detail{ get; set; } }

 

//注意集合的前缀为List

 

//controllerPublic ActionResult ActionMethod(Company company){      foreach(var job in company.JobList){}}

参考http://www.cnblogs.com/artech/archive/2012/05/30/default-model-binding-02.html

 

转载于:https://www.cnblogs.com/imust2008/p/5334068.html

你可能感兴趣的文章
kali,parrot最新更新debain源
查看>>
平衡树学习笔记(2)-------Treap
查看>>
在 Xcode 6 中使用矢量图( iPhone 6 置配 UI)
查看>>
./mosquitto_internal.h:51:12: fatal error: 'ares.h' file not found
查看>>
HDU 1789 Doing Homework again(非常经典的贪心)
查看>>
本机,同机房,同城,异地,不同城,腾讯云ping延时值
查看>>
jQuery小结5
查看>>
i=i+1与i+=1的区别及效率
查看>>
指令——mkdir
查看>>
Server.MapPath
查看>>
WPF日期控件
查看>>
基本的SqlPlus命令
查看>>
oracle 日期比较出现ORA-01861: 文字与格式字符串不匹配问题
查看>>
hibernate_sequence.nextval 序列不存在
查看>>
sqluldr2
查看>>
Oracle Patch Set Update and Critical Patch Update April 2011 Released
查看>>
图论算法之(割点)
查看>>
摄像头工作原理【转】
查看>>
js打乱数组排序
查看>>
UVA 387 A Puzzling Problem
查看>>