Web services MVC4从URL获取请求变量

Web services MVC4从URL获取请求变量,web-services,asp.net-mvc-4,Web Services,Asp.net Mvc 4,我第一次使用MVC4,我正在尝试创建一个Web服务。 但是,当我尝试这样做时:http://localhost:****/api/mycontroller/?编号=1&id=7 我没有办法从URL检索数据 如何获取这两个变量? Request.QueryString[“ParameterName”]导致错误,它无法识别此函数 谢谢。我想您指的是允许我们构建RESTful应用程序的WebApi。如果是,则在ApiController中甚至没有Request对象,因为未导入System.Web.Mv

我第一次使用MVC4,我正在尝试创建一个Web服务。 但是,当我尝试这样做时:
http://localhost:****/api/mycontroller/?编号=1&id=7
我没有办法从URL检索数据

如何获取这两个变量?
Request.QueryString[“ParameterName”]
导致错误,它无法识别此函数


谢谢。

我想您指的是允许我们构建RESTful应用程序的WebApi。如果是,则在
ApiController
中甚至没有
Request
对象,因为未导入
System.Web.Mvc
。控制器方法在ApiController中的工作方式不同于MVC控制器,因为api方法被用作或称为HTTP方法。因此,如果你有:

[HttpGet]        
public int Count(int id)
{            
    return 50;
}

public string Get(int id)
{
    return "value";
}
默认情况下,如果不添加自定义路由,这将不起作用,因为框架认为这两种方法是相同的。关于你的问题,如果你想在一个GET中捕获querystring而不是默认的
GET(int-id)
,你应该像Dave a提到的那样将它们定义为方法参数,如下所示:

public string GetByNumberAndId(int number, int id) {
   return "somevalue";
}
您可以像现在这样调用该方法:

http://localhost:****/api/mycontroller/?number=1&id=7

您可以在其网站上阅读更多关于WebApi的信息。虽然它是一年前编写的,但它仍然是一个很好的开始资源。

将数字和id参数添加到操作方法定义中