悦波 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 visual studio2022中文乱码无法解决
  • ¥15 关于华为5g模块mh5000-31接线问题
  • ¥15 keil L6007U报错
  • ¥15 webapi 发布到iis后无法访问
  • ¥15 初学者如何快速上手学习stm32?
  • ¥15 如何自动更换布娃娃图片上的衣服
  • ¥15 心理学eprime编程
  • ¥15 arduino esp8266开发
  • ¥15 stm32单片机通过485发送命令给驱动器控制电机转动,同样的代码f103可以控制电机转动,换到f407不能动了,但是用串口助手调试407显示发送的命令都是正确的,卡了好久了这是发送规则
  • ¥15 stm32f103c8t6最小系统板+2.8寸TFTLCD板子