从具有多个参数 net core mvc 的控制器调用另一个 actionresult

Posted

技术标签:

【中文标题】从具有多个参数 net core mvc 的控制器调用另一个 actionresult【英文标题】:call another actionresult from controller with multiple parameters netcore mvc 【发布时间】:2021-02-17 08:30:45 【问题描述】:

我的控制器中有一个方法 (MethodA),它需要在同一个控制器中返回另一个 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 中的查询字符串。有什么办法可以预防吗?

谢谢

【问题讨论】:

【参考方案1】:

变化:

return RedirectToAction(nameof(Bulkimport), new  id = customerId, model = returnMessage );

return Bulkimport( customerId, returnMessage);

````

【讨论】:

谢谢。有时它可以如此简单:)

以上是关于从具有多个参数 net core mvc 的控制器调用另一个 actionresult的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个数组作为 POST 请求参数从 AJAX 发送到 MVC 控制器(ASP .NET Core 3.1 剃须刀)?

如何将多个参数传递给 ASP.NET Core 中的 get 方法

将多个参数从 ajax post 传递到 asp.net mvc 控制器

如何将多个参数传递给 ASP.NET CORE MVC 中的 HttpGet 方法?

.Net core MVC 控制器,可选参数路由规则被空值破坏

将动态添加的 html 表行作为参数发布到控制器 - ASP.NET Core/MVC