如何编写一个接受不同输入参数的 C# 方法,而在调用它之前不知道参数

How to write a C# method accepting varying input parameters without knowing the parameters prior it is called

我正在尝试在 ASP.NET MVC C# 中编写方法

  1. 该方法将通过使用如下所示的 URLs 来调用,但是不同的 URLs 将具有不同的参数。 例如;

    -- URL 1: host/myController/myMethod?param1=value1&param2=value2

    -- URL 2: host/myController/myMethod?param3=value3&param4=value4&param5=value5

  2. 该方法在执行之前不必知道参数 称呼。参数本身和参数数量会因调用而异,该方法将接受任何参数。

我尝试在方法中使用 params string[] myParamaters 作为输入,但是当我通过 URLs 调用方法时,myParameters 取空值。

如何为这样的控制器方法定义参数?

您应该能够通过 Request.QueryString 解析 QueryString。类似于:

public ActionResult MyMethod()
{
    foreach(string key in Request.QueryString) {
        // Do stuff with Request.QueryString[key]
    }
}

这样,您就不需要在方法定义中使用可变参数列表。

您可以从 HttpRequest.QueryString 返回的字典中获取 URL 参数。与其将参数烘焙到操作方法的原型中,不如将它们放入控制器中,例如

ActionResult MyAction() //No params
{
    var params = HttpContext.Current.Request.QueryString;
}