在MVC中,我知道我们可以从get请求中获取参数:
请求:
http://www.example.com/method?param1=good¶m2=bad
在控制器中
public ActionResult method(string param1, string param2)
{
....
}
但在我的情况下,外部网站向我发送了一个获取请求,例如:
http://www.example.com/method?param.1=good¶m.2=bad
当我尝试满足此请求时,在控制器中,如下所示:
public ActionResult method(string param.1, string param.2)
{
....
}
由于变量名中的点,我得到构建错误。我怎样才能获得这些参数?不幸的是,我不能要求他们更改参数名称。
答案 0 :(得分:39)
使用以下代码:
public ActionResult method()
{
string param1 = this.Request.QueryString["param.1"];
string param2 = this.Request.QueryString["param.2"];
...
}
答案 1 :(得分:14)
这可能是你最好的选择:
/// <summary>
/// <paramref name="param.1"/>
/// </summary>
public void Test1()
{
var value = HttpContext.Request.Params.Get("param.1");
}
从HttpContext.Request.Params
获取参数,而不是将其作为显式参数
答案 2 :(得分:0)
The Framework
public void ProcessRequest(HttpContext context)
{
string param1 = context.Request.Params["param.1"];
替换为 .net核心3.1
ControllerBase
...
[ApiController]
[Route("[controller]")]
...
string param1 = HttpContext.Request.Query["param.1"];
string param2 = HttpContext.Request.Query["param.2"];