如何代码,其接受不知道现有它被称为参数变化的输入参数的方法
问题描述:
我试图在ASP.NET
MVC
C#
到代码的方法做如下如何代码,其接受不知道现有它被称为参数变化的输入参数的方法
-
的方法,将通过使用URL等被称为但下面不同的网址会有不同的参数。例如, ;
- URL 1:
host/myController/myMethod?param1=value1¶m2=value2
- URL 2:
host/myController/myMethod?param3=value3¶m4=value4¶m5=value5
- 的方法不必知道前 调用的参数。参数本身和参数数量因呼叫而异,并且该方法将接受任何参数。
我试图在方法中使用params string[] myParamaters
作为输入,但是当我通过URL调用方法时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;
}
为什么不使用像'的ActionResult的MyMethod(字符串参数1,字符串参数2,字符串参数3,串param4,串param5)'的方法和基于去关闭你的输入是什么。我建议使用一个数据对象,一旦你得到5个变量。 – lloyd
我在这里放5个参数,但实际上参数的数量可以很多。可能超过30个,我不知道请求中可能会调用哪些参数。所以基本上,该方法将接受任何内容,然后解析方法内的参数名称和值。 – user3622488
[那个答案]有什么问题(https://stackoverflow.com/questions/46246052/how-to-call-ac-sharp-function-by-using-urls-varying-in-number-of-parameters)所以你再次问它 –