悦波 2014-08-28 08:59 采纳率: 0%
浏览 4325

asp.net mvc 怎么实现跨 controller 传参数?

先来描述一下我的问题吧,
asp.net mvc 在一个控制器的action中,有一个 list集合,要传到 另一个controller的action中,
我知道的:
1如果是同一个controller 可以 用this.(action名)来调用。因为是不同的controller所以不行。
2还可以用RedirectToAction 输入控制器名,action名,然后是要传的参数,这样做,服务器会发一个302到浏览器,然后浏览器通过get请求,将这个参数传到 指定的url。但是这里就需要把参数拼接成json,或者字符串拼接成 键值对 的url参数,因为我的参数是一个list,数据个数不确定,拼字符串,太繁琐了,实在是不想这么做,所以我先把这个参数 序列化 为json,然后传过去,但是这样一来 我传参数的方式就是:RedirectToAction("CheckCart", "Cart", new { shopCarts = obj }); 生成的 参数就是这样:
shopCarts:[{"Id":69,"ProductSku":{"ProductId":1408051434260863,"ProductName":"牛仔裤1","MainPic":"/Content/HtmlImage/upload/image/20140819/6354405256478108402044752.jpg","SkuId":1408051437380414,"SkuName":"蓝色/XL","Manifest":null,"ReferencePrice":0.0,"UnitPrice":60.00,"OwnerShopId":0,"OwnerShopName":null},"MixSalesType":0,"MinPurchaseQuantity":10,"Quantity":100,"CustomerId":1408051132340127,"CustomerName":"卖家1","ShopId":1408051139000447,"ShopName":"卖家3","MixSalesMinAmount":0.0,"MixSalesMinQuantity":0,"TotalStock":100.0,"CartType":2,"IsMixSalesFailed":false,"Discount":0.0,"DiscountInfo":null,"IsDeleted":false,"CreatedUserId":null,"CreatedTime":null,"ModifiedTime":null},{"Id":71,"ProductSku":{"ProductId":1408051434260863,"ProductName":"牛仔裤3","MainPic":"/Content/HtmlImage/upload/image/20140818/6354397481924074737347456.jpg","SkuId":1408051438240095,"SkuName":"蓝蓝色/L","Manifest":null,"ReferencePrice":0.0,"UnitPrice":60.00,"OwnerShopId":0,"OwnerShopName":null},"MixSalesType":0,"MinPurchaseQuantity":30,"Quantity":100,"CustomerId":1408051132340127,"CustomerName":"卖家1","ShopId":1408051139000447,"ShopName":"卖家3","MixSalesMinAmount":0.0,"MixSalesMinQuantity":0,"TotalStock":11.0,"CartType":2,"IsMixSalesFailed":false,"Discount":0.0,"DiscountInfo":null,"IsDeleted":false,"CreatedUserId":null,"CreatedTime":null,"ModifiedTime":null}]

、、、、哇!一堆json,关键不是这个,不知道你发现没有,这里生成的是shopCarts:[{"Id":69,...这种格式的,就是一个 key对应一个 json对象,关键啊,关键,是mvc,的模型绑定,不能将这个参数 绑定成指定的 模型,这就坑了啊。
我是把mvc 中 action的参数 改成了 string类型,然后接受到shopCarts这参数,在反序列化成指定的 model,是不是很坑。就是这点,我也不知道咋么弄了。

所以想问问,有没有朋友 遇到过这样的问题,然后帮忙看一下了。
希望帮我回答一下,有没有 其他的 跨controller 的 方法可用,然后能穿一个list的复杂参数。
要不就帮忙,说一下 这个还有什么更好的解决方法。谢了。

  • 写回答

1条回答

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-29 05:59
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3