2 sanjiangjun3 sanjiangjun3 于 2014.08.28 16:59 提问

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的复杂参数。
要不就帮忙,说一下 这个还有什么更好的解决方法。谢了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!