C# 重定向到动作、区域和通过类

C# 重定向到动作、区域和通过类,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,我正在.Net Core(Netcoreapp 1.1)中创建一个站点。有时,我需要将一个操作从一个控制器重定向到另一个控制器,并使用以下代码将信息传递到目标操作: public class MyInfo() { public string Area {get;set;} public string Controller {get;set;} public string Action {get;set;} public string UserId {get;se

我正在.Net Core(Netcoreapp 1.1)中创建一个站点。有时,我需要将一个操作从一个控制器重定向到另一个控制器,并使用以下代码将信息传递到目标操作:

public class MyInfo() 
{
    public string Area {get;set;}
    public string Controller {get;set;}
    public string Action {get;set;}
    public string UserId {get;set;}
}

public class FirstController() : Controller 
{
    public IActionResult SelectUser() 
    {
        return RedirectToAction("SelectUser", "Users", new 
        {
            Area = "Security",
            model = new MyInfo()  
            {
                Area = "Weapons",
                Controller = "First",
                Action = "SelectUserCallback",
            }
        });
    }
}

public class UsersController() : Controller 
{
    public IActionResult SelectUser(MyInfo model)  
    {
        //Show a dialog, set the results in model and return
    }
}

此代码的目的是显示一个显示用户列表的对话框,允许选择一个用户,然后将所选用户返回到由MyInfo表示的回调。
SelectUser
函数被正确调用,模型不为null,但模型的所有属性均为null。有人能告诉我我做错了什么吗?

到目前为止,在.net mvc中还不支持将参数从一个操作传递到另一个操作。为此,您需要使用临时存储解决方案(如临时数据或会话)或持久性存储(如数据库),才能按您想要的方式工作。

最终找到了解决方案。似乎参数可以从一个动作传递到另一个动作,而不是作为一个复杂的对象。我将我的方法的签名更改为:

public IActionResult SelectUser(string callbackAction, string callbackController, string callbackArea)
所有信息都正确传递