【问题标题】:Redirecting to Action with Parameter - Parameter set to null使用参数重定向到操作 - 参数设置为 null
【发布时间】:2015-08-06 18:13:06
【问题描述】:

我是 MVC 新手。我在鬼混试图掌握这个概念。我有以下代码。它非常直截了当。当用户点击排序操作时,它会对列表进行排序并将列表发送到索引操作(还有许多其他方法可以实现这一点,例如发送排序布尔值 - 正如我所说,我只是在胡闹)。

我遇到的问题是 Index 操作中的模型参数始终为空。在运行(调试)代码时,正在执行排序操作,并且 m=model 不为空(具有用户列表)。我也可以遵循它直接进入索引。有人可以告诉我我做错了什么吗?帮助将不胜感激。

public ActionResult Index(List<user> model)
        {
            if (model == null)
            {
                model = (from u in UsersList
                             select u).ToList<user>();
            }

            return View(model);
        }

 public ActionResult Sort()
        { 
            var model = from f in UsersList
                      orderby f.Name ascending
                      select f;

            return RedirectToAction("Index", new {m = model});

        }

【问题讨论】:

    标签: c# asp.net asp.net-mvc


    【解决方案1】:

    您在这里所做的是将模型作为参数传递

    RedirectToAction("Index", new {m = model});
    

    但这是不允许的。你必须直接传递模型

    RedirectToAction("Index", model);
    

    如果您仍想将其作为参数传递,请查看this post

    【讨论】:

    • 好的。谢谢你。然而,这引发了另一个问题。您如何访问传递的模型?
    • @user1203996,我没有收到您的评论。在哪种情况下您不了解如何访问模型?
    • 为什么直接传一个模型? MVC 不允许使用 RedirectToAction。 TempData 应该是这样的。
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 2018-12-10
    • 2013-12-20
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    相关资源
    最近更新 更多