【问题标题】:How to fix passed list parameter value being 0如何修复传递的列表参数值为0
【发布时间】:2019-02-02 15:59:48
【问题描述】:

我正在尝试将值列表传递给另一个方法,但是一旦调用了第二种方法,该列表就会失去它的价值。

第一种方法:

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});

}

第二种方法:

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

        return null;
    }

我希望输出:CourseNumber = "100", CourseTitle = "Test Title", CourseSubject = "Subject Test")

【问题讨论】:

  • @crmckain,你又问了同样的问题。我已经在这里回答了你的问题。请检查一下。 stackoverflow.com/a/54489088/5928070
  • @TanvirArjel 我尝试了一种不同的方法并且得到了不同的结果,所以我认为有必要提出另一个问题。
  • 好的!知道了。看看我们能为您做什么。
  • 别担心它仍然有效。感谢您的帮助

标签: c# asp.net-mvc list


【解决方案1】:

当您执行重定向到操作时,参数作为查询字符串传递,因此您无法传递整个对象,请参阅此问题: passing object in redirecttoaction

【讨论】:

    【解决方案2】:

    试试 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;
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-03
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多