【问题标题】:How to invoke a controller action from a path?如何从路径调用控制器操作?
【发布时间】:2017-10-31 17:11:35
【问题描述】:

有没有办法以编程方式调用控制器的操作?

例如:

var controller = new MyWebApiController();
controller.InvokeAction("/myAction?param1=2");

我知道我可以直接使用“controller.MyAction(2)”,但我有字符串中的路径和查询,我想直接映射到函数和参数。

环境:ASP NET CORE 2.0

更新:

我不是从另一个控制器调用它。我需要从由外部事件触发的常规函数​​调用它。接收到的数据是路径和查询,如“/myAction?param1=2”

【问题讨论】:

  • 如果你从另一个控制器调用它,有很多方法stackoverflow.com/questions/2910948/…
  • 谢谢。我看到了答案,但他们中的大多数人直接从代码中调用操作。我在字符串中有路径和查询。顺便说一句,我不是从控制器调用它。它来自外部事件触发的函数。

标签: asp.net-mvc asp.net-web-api asp.net-core


【解决方案1】:

您可以通过将字符串分成这样的部分来从控制器调用它

string urlPath = "/myAction?param1=2";
string[] str = urlPath.Split(new[] { "/", "?", "=" },StringSplitOptions.RemoveEmptyEntries);
var actionName = str[0];
var parameterVal = str[2];
return RedirectToAction(actionName, CONTROLLERNAME, new { parameterVal });

【讨论】:

    猜你喜欢
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 2011-02-12
    相关资源
    最近更新 更多