ASP .NET MVC Redirecttoaction 将参数传递给 Index 但值为空

Posted

技术标签:

【中文标题】ASP .NET MVC Redirecttoaction 将参数传递给 Index 但值为空【英文标题】:ASP .NET MVC Redirecttoaction passing parameters to Index but values are null 【发布时间】:2021-10-05 17:21:22 【问题描述】:

无法获取控制器操作以将值传递给另一个。参数正确传递,但值保持为空。 代码:需要从 Display() 中获取 selectregister 的值,并根据它获取信息。信息被分配给 ViewList expandoobject 并传递给 Index()。

 [HttpGet]
        public ActionResult Index(Expandoobject vl)
        
            ViewList = vl;
            if (((IDictionary<String, object>)ViewList).ContainsKey("Applist"))
            
                ViewList.chk = "Yes";
            
            else
            
                getbasics(ViewList);
            
            ViewList.RegList = GetAllregList(A, B);
            return View("Index", ViewList); //default view
        
 [HttpPost]
        public ActionResult Display(string selectRegister)
        
            ViewList.reg = selectRegister;
            ViewList.Applist = ReadAPIinfo(A, selectRegister);
            return RedirectToAction("Index", ViewList);
        

在上面的代码中,参数 ViewList.reg、ViewList.Applist 通过 ExpandoObject vl 作为空值传递。为了绕过这一点,我目前将所需的值存储在会话变量中并以迂回方法解决。想了解 MVC.TIA 中的参数传递是如何工作的(对于动态扩展对象)! 注意:我使用了其他一些类似线程中建议的 TempData[] 解决方案,但不适用于我的 ExpandoObject 变量。

【问题讨论】:

对于控制器到控制器或操作到操作,您可以使用 TempData 或 Session。 ViewData,ViewBag 仅从控制器工作到视图。 是同一个控制器吗? 是的,它在同一个 Homecontroller 中 Vaibhav Deshmukh - 感谢您的回复。我将我的动态 expandoobject 命名为 ViewList 并在同一个控制器中声明它 - public dynamic ViewList = new ExpandoObject();还是不能在控制器内部传递? 【参考方案1】:

由于两个动作都在同一个控制器中,最简单的方法是

public ActionResult Display(string selectRegister)
        
          .....
            return Index( ViewList);
        

【讨论】:

谢谢!当我实现这个时,编译器编译没有任何错误,但动态变量抛出执行错误:“'Microsoft.AspNetCore.Mvc.ControllerBase.RedirectToAction(string)'的最佳重载方法匹配有一些无效参数” @Sheva 抱歉,我的代码中没有任何重定向。您一定忘记删除上一个。

以上是关于ASP .NET MVC Redirecttoaction 将参数传递给 Index 但值为空的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net mvc和asp.net有啥区别?

七天学会ASP.NET MVC ——ASP.NET MVC 数据传递

ASP.NET MVC

ASP.NET MVC 5、ASP.NET Core MVC 5 有啥区别?

ASP.NET MVC 和 Angularjs 与 ASP.NET MVC 和 Reactjs

七天学会ASP.NET MVC ——ASP.Net MVC 数据处理