加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – MVC3 – 无法通过其他操作将int []传递给Redic

发布时间:2020-12-16 07:18:15 所属栏目:asp.Net 来源:网络整理
导读:我在同一个控制器中有2个动作. public ActionResult Index(string filter,int[] checkedRecords) 和 public ActionResult ExportChkedCSV(string filter,int[] checkedRecords) 第二个Action(ExportChkedCSV)包含此重定向: if (reject != 0) { return Redir
我在同一个控制器中有2个动作.

public ActionResult Index(string filter,int[] checkedRecords)

public ActionResult ExportChkedCSV(string filter,int[] checkedRecords)

第二个Action(ExportChkedCSV)包含此重定向:

if (reject != 0)
        {
            return RedirectToAction("Index",new { filter,checkedRecords });
        }

当我单步执行时,参数checkedRecords在RedirectToAction语句中正确填充,但是当它从那里命中Index ActionResult时,checkedRecords为null.我已经尝试过filter =,checkedRecords =等等.我从View到Controller都没有问题.如果我将数组类型更改为其他任何内容,我可以获取值 – 如何将int []从操作传递给action?我究竟做错了什么?谢谢

解决方法

您不能在MVC中将复杂类型作为重定向参数发送,只能使用数字和字符串等原始类型

使用TempData传递数组

...
if (reject != 0) {
    TempData["CheckedRecords"] = yourArray;
    return RedirectToAction("Index",new { filter = filterValue });
}
...

public ActionResult Index(string filter) {
    int[] newArrayVariable;
    if(TempData["CheckedRecords"] != null) {
        newArrayVariable = (int[])TempData["CheckedRecords"];
    }
    //rest of your code here
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读