使用多个参数从控制器调用另一个动作结果 net core mvc
call another actionresult from controller with multiple parameters netcore mvc
我的控制器中有一个方法 (MethodA) 需要 return 同一控制器中的另一个 ActionResult
(methodB),其中一些参数作为负载。为此,我在 MethodA 的末尾使用 RedirectToAction(nameof(methodB), new { param1=param1, param2=param2 } )
。
当我调试时,所有参数都被加载并包含预期值。但是当它到达methodB时,两个参数都是空的。
方法A
[HttpPost]
public ActionResult Bulkimport(int id)
{
int customerId = 5;
ReturnModel returnMessage = new ReturnModel();
returnMessage.Message= "All data loaded";
returnMessage.returnModel = returnModel; //contains list with some data
return RedirectToAction(nameof(Bulkimport), new { id = customerId, model = returnMessage });
}
方法B
[HttpGet]
public ActionResult Bulkimport(int id, MessageModel model)
{
// Do stuff, but MessageModel and id are null.
return View();
}
有人知道这里会发生什么吗?
附加:我有一些经验,即附加参数在接收视图中显示为浏览器 url 中的查询字符串。有什么办法可以预防吗?
谢谢
变化:
return RedirectToAction(nameof(Bulkimport), new { id = customerId, model = returnMessage });
到
return Bulkimport( customerId, returnMessage);
````
我的控制器中有一个方法 (MethodA) 需要 return 同一控制器中的另一个 ActionResult
(methodB),其中一些参数作为负载。为此,我在 MethodA 的末尾使用 RedirectToAction(nameof(methodB), new { param1=param1, param2=param2 } )
。
当我调试时,所有参数都被加载并包含预期值。但是当它到达methodB时,两个参数都是空的。
方法A
[HttpPost]
public ActionResult Bulkimport(int id)
{
int customerId = 5;
ReturnModel returnMessage = new ReturnModel();
returnMessage.Message= "All data loaded";
returnMessage.returnModel = returnModel; //contains list with some data
return RedirectToAction(nameof(Bulkimport), new { id = customerId, model = returnMessage });
}
方法B
[HttpGet]
public ActionResult Bulkimport(int id, MessageModel model)
{
// Do stuff, but MessageModel and id are null.
return View();
}
有人知道这里会发生什么吗? 附加:我有一些经验,即附加参数在接收视图中显示为浏览器 url 中的查询字符串。有什么办法可以预防吗?
谢谢
变化:
return RedirectToAction(nameof(Bulkimport), new { id = customerId, model = returnMessage });
到
return Bulkimport( customerId, returnMessage);
````