标签:博客 user get请求 set 服务 意思 基础 end 为什么
ASP.NET MVC 表单参数如果有列表时要怎么写呢.
虽然很久不用MVC了,但几乎每次遇到一次就要研究一下.然后又忘了.
其实也明白这是未完全弄清楚表单参数的传递形式,如果明白了,就知道MVC为什么要这样接收了..MVC这种方式肯定不是随便想出来的,而是遵守参数传递的形式而定的
// action 参数 u 这个参数有一个属性是一个列表,
pulic actionreault method(user u)
{
}
class user{
public string name {get;set;}
public string[] friends {get;set;}
}
// 脚本 如何传这个参数
var para={};
para.name=‘博客员‘;
para.friends[0]=‘MS‘
para.friends[1]=‘asp.net‘
// 注意这个写法, friends属性对应实体上的friends属性,当然了.这是必须的,
由于friends是个数组,所以脚本参数写成 friends[0]=xx friends[1]=xx 这个意思就是数组的第0个值,第1个值 ....
那怎么为什么直接写成para.friends=[‘MS‘,‘asp.net‘]时,action会接收不到呢?
这就是http参数基础格式, key=value 假如一个GET请求 , friends=MS&friends=asp.net&K=V... 这个键重复了, 服务端接收时可能会将相同的键弄成一个数组
假如是个POST请求,传一个JSON对象,那键不能重复.ASP.MVC采取了键名[下标]的形式,当做 一个数组.可以解析到实体的对应名称的数组对象上
//
其实http传参数的格式对于服务端来讲,都是那样的.但是不同的服务端解析的方式可能不相同.
ASP.NET接收数组参数的写法形式就是
键名[下标0] = 值0
键名[下标1] = 值1
.....
服务端的参数名就是 键名
这样就接收到了
标签:博客 user get请求 set 服务 意思 基础 end 为什么
原文地址:https://www.cnblogs.com/mirrortom/p/8971118.html