如何把把这个在后台 接收了??
除了这样还可以 怎么接收如
s =“23-3-4-2”
String[] str = s.split("-");
是.net MVC么?
是的
@孩丿: mvc 你定义一个 传过去参数的实体,放在你api的方法内例如 接收的方法(实体 A)
class 实体
{
public int [] Art..(){get;set;}
}
具体mvc的开发方式,还用Request ,out了
context.Request["ArticleIDs"];
string[] ids= context.Request["ArticleIDs"].Split('-');
@冷战: 如何传过来是一个int类型烦人数组如何接收呢????
@冷战: int 类型的数组
没有-这个
@孩丿: 你就在前台把int数组拼装成string字符串,中间用逗号或横杠隔开,传到后台后再转换就可以了
@孩丿: 给你个网址参考参考https://zhidao.baidu.com/question/414418278.html
你试下这样:
1 char[] charArray = Request["ArticleIDs"].ToArray();
PS:如果是MVC的话
1.JsonResult可以处理传过来的参数,不需要通过Request["键名"]。
1 [HttpPost] 2 public Action 方法名(参数--和ajax传的参数名对应上) 3 { 4 // 可以再对参数值进行处理。 5 }
2.直接通过IO流获取json字符串(在前台传参前需先序列化,不然读取中文流会出现问题。)
1 string myJson = string.Empty; 2 using (System.IO.StreamReader sr = new System.IO.StreamReader(Requ est.InputStream)) 3 { 4 myJson = sr.ReadToEnd(); 5 }
希望能帮到你!
第一个方法不行,若是你有 11 12呢
@~扎克伯格: 呃,不好意思,确实是这样的。。
若是,返回的字符串带有两个字符或者以上,就会被拆分掉吧?
@疯五五爱喝咖啡: 看你好像挺感兴趣的啊!其实像这种含有复杂类型的,在后台可以使用IO流处理,先在前台将数据序列化为json数据,再从后台反序列化下。贴段code看下吧!
1 string myJson = string.Empty; 2 using (System.IO.StreamReader sr = new System.IO.StreamReader(Request.InputStream)) 3 { 4 myJson = sr.ReadToEnd(); 5 } 6 Test test = JsonSerializer.DeserializeFromString<Test>(myJson);//反发序列化为Test对象. 7 int[] Ids = test.Ids;//获取复杂类型int数组的数据. 8 9 public class Test 10 { 11 public string ConsultantId { get; set; } 12 13 public string LastName { get; set; } 14 15 public string UnitId { get; set; } 16 17 public int[] Ids { get; set; } 18 19 }
前台数据的序列化可以自己处理下。
mvc
action(int[] ArtcleIds )
亲测过int[]类型数据为null
@~扎克伯格: 兄弟,那是你用错了而已
@{ ViewBag.Title = "action"; } <h2>action</h2> <a class="btn btn-default">Click Me</a> @section js{ <script> $(function () { $('a').click(function () { $.post('/home/action', { arr: [1, 2, 3, 4, 5] }, function (d) { console.log(d); }) }); }) </script> }
@calvinK: 大兄弟,楼主用的不是$.ajax这种请求方式吗?昨晚貌似找到答案了,ajax中有个参数traditional设置为true( 默认的话,traditional为false,即jquery会深度序列化参数对象,https://my.oschina.net/i33/blog/119506)。后台可以获取数组的数据。不过还是谢谢你的回复!
如果就是id,你可以用逗号分隔。