我正在.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。谁能告诉我我在这里做错了什么?
答案 0 :(得分:0)
.net mvc目前尚不支持将参数从一个操作传递到另一个操作。您需要使用临时存储解决方案(如临时数据或会话)或持久存储(如数据库),以便按照您的方式工作。
答案 1 :(得分:0)
终于找到了解决方案。似乎参数可以从一个动作传递到另一个动作,而不是作为复杂的对象。我将方法的签名更改为:
public IActionResult SelectUser(string callbackAction, string callbackController, string callbackArea)
所有信息都正确传递。