如何修复传递的列表中的参数值是0

问题描述 投票:0回答:2

我想值的列表传递到另一个方法但是一旦第二个方法被调用列表中失去了它的价值。

第一种方法:

public ActionResult Create_Filter([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<CourseFilterViewModel> courseFilterVM)
    {
var results = new List<Results>
        {
            new Results {CourseNumber = "100", CourseTitle = "Test Title", CourseSubject = "Subject Test"}
        };

        return RedirectToAction("TestView", "Filter", new {results});

}

第2种方法:

public ActionResult TestView(List<Results> results)
    {
        //results value here is 0               

        return null;
    }

我期望的输出:CourseNumber = “100”,CourseTitle = “测试题”,CourseSubject = “考试科目”)

c# asp.net-mvc list
2个回答
1
投票

当你做重定向到动作,参数作为查询字符串传递,因此你不能将整个对象,看到这个问题:passing object in redirecttoaction


0
投票

尝试TempData的。这些数据将结转到一个重定向。

public ActionResult Create_Filter([DataSourceRequest] DataSourceRequest request, 
[Bind(Prefix = "models")]IEnumerable<CourseFilterViewModel> courseFilterVM)
{
    var results = new List<Results>
    {
        new Results {CourseNumber = "100", CourseTitle = "Test Title", 
         CourseSubject = "Subject Test"}
    };
    TempData["results"] = results;
    return RedirectToAction("TestView", "Filter");

 }
 public ActionResult TestView()
 {

    if(TempData["results"] != null) {
      //do something
    }
    return whatever;
 }
© www.soinside.com 2019 - 2024. All rights reserved.