如何编写一个接受不同输入参数的 C# 方法,而在调用它之前不知道参数
How to write a C# method accepting varying input parameters without knowing the parameters prior it is called
我正在尝试在 ASP.NET
MVC
C#
中编写方法
该方法将通过使用如下所示的 URLs 来调用,但是不同的 URLs 将具有不同的参数。
例如;
-- URL 1: host/myController/myMethod?param1=value1¶m2=value2
-- URL 2: host/myController/myMethod?param3=value3¶m4=value4¶m5=value5
- 该方法在执行之前不必知道参数
称呼。参数本身和参数数量会因调用而异,该方法将接受任何参数。
我尝试在方法中使用 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;
}
我正在尝试在 ASP.NET
MVC
C#
中编写方法
该方法将通过使用如下所示的 URLs 来调用,但是不同的 URLs 将具有不同的参数。 例如;
-- URL 1:
host/myController/myMethod?param1=value1¶m2=value2
-- URL 2:
host/myController/myMethod?param3=value3¶m4=value4¶m5=value5
- 该方法在执行之前不必知道参数 称呼。参数本身和参数数量会因调用而异,该方法将接受任何参数。
我尝试在方法中使用 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;
}