问题描述
- 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"":69ProductSku"":{""ProductId"":1408051434260863ProductName"":""牛仔裤1""MainPic"":""/Content/HtmlImage/upload/image/20140819/6354405256478108402044752.jpg""SkuId"":1408051437380414SkuName"":""蓝色/XL""Manifest"":nullReferencePrice"":0.0UnitPrice"":60.00OwnerShopId"":0OwnerShopName"":null}MixSalesType"":0MinPurchaseQuantity"":10Quantity"":100CustomerId"":1408051132340127CustomerName"":""卖家1""ShopId"":1408051139000447ShopName"":""卖家3""MixSalesMinAmount"":0.0MixSalesMinQuantity"":0TotalStock"":100.0CartType"":2IsMixSalesFailed"":falseDiscount"":0.0DiscountInfo"":nullIsDeleted"":falseCreatedUserId"":nullCreatedTime"":nullModifiedTime"":null}{""Id"":71ProductSku"":{""ProductId"":1408051434260863ProductName"":""牛仔裤3""MainPic"":""/Content/HtmlImage/upload/image/20140818/6354397481924074737347456.jpg""SkuId"":1408051438240095SkuName"":""蓝蓝色/L""Manifest"":nullReferencePrice"":0.0UnitPrice"":60.00OwnerShopId"":0OwnerShopName"":null}MixSalesType"":0MinPurchaseQuantity"":30Quantity"":100CustomerId"":1408051132340127CustomerName"":""卖家1""ShopId"":1408051139000447ShopName"":""卖家3""MixSalesMinAmount"":0.0MixSalesMinQuantity"":0TotalStock"":11.0CartType"":2IsMixSalesFailed"":falseDiscount"":0.0DiscountInfo"":nullIsDeleted"":falseCreatedUserId"":nullCreatedTime"":nullModifiedTime"":null}]、、、、哇!一堆json,关键不是这个,不知道你发现没有,这里生成的是shopCarts:[{""Id"":69...这种格式的,就是一个 key对应一个 json对象,关键啊,关键,是mvc,的模型绑定,不能将这个参数 绑定成指定的 模型,这就坑了啊。
我是把mvc 中 action的参数 改成了 string类型,然后接受到shopCarts这参数,在反序列化成指定的 model,是不是很坑。就是这点,我也不知道咋么弄了。所以想问问,有没有朋友 遇到过这样的问题,然后帮忙看一下了。
希望帮我回答一下,有没有 其他的 跨controller 的 方法可用,然后能穿一个list的复杂参数。
要不就帮忙,说一下 这个还有什么更好的解决方法。谢了。
时间: 2024-08-22 14:52:24