C# 重定向到动作、区域和通过类
我正在.Net Core(Netcoreapp 1.1)中创建一个站点。有时,我需要将一个操作从一个控制器重定向到另一个控制器,并使用以下代码将信息传递到目标操作: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
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)
所有信息都正确传递