gpt4 book ai didi

asp.net-mvc-3 - MVC3 - 无法将 int[] 从不同的 Action 传递到 RedicrectToAction 上的 Controller Action

转载 作者:行者123 更新时间:2023-12-04 23:27:21 26 4
gpt4 key购买 nike

我在同一个 Controller 中有 2 个 Action 。

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


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

第二个操作 (ExportChkedCSV) 包含此重定向:
if (reject != 0)
{
return RedirectToAction("Index", new { filter, checkedRecords });
}

当我逐步执行时,参数checkedRecords 在RedirectToAction 语句中正确填充,但是当它从那里点击Index ActionResult 时,checkedRecords 为空。我试过做 filter =、checkedRecords = 等。我从 View 到 Controller 都没有问题。如果我将数组类型更改为其他任何类型,我可以获取该值 - 如何将 int[] 从一个 Action 传递到另一个 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
}

关于asp.net-mvc-3 - MVC3 - 无法将 int[] 从不同的 Action 传递到 RedicrectToAction 上的 Controller Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10678077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com