0

我第一次使用 MVC4,我正在尝试创建一个 WebService。但是,当我尝试这样做时:http://localhost:****/api/mycontroller/?number=1&id=7 我无法从 URL 中检索数据。

我怎样才能得到这两个变量? Request.QueryString["ParameterName"]导致错误,它无法识别此功能。

谢谢。

4

1 回答 1

2

我假设您指的是允许我们构建 RESTful 应用程序的 WebApi。如果是,那么Request在 an 中甚至没有对象,ApiController因为System.Web.Mvc没有导入。Controller 方法在 ApiController 中的工作方式与 MVC 控制器的不同之处在于 api 方法被用作或调用为 HTTP 方法。因此,如果您有:

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

public string Get(int id)
{
    return "value";
}

默认情况下,如果不添加自定义路由,这将不起作用,因为框架将这两种方法视为相同。关于你的问题,如果你想在 GET 中捕获查询字符串而不是默认值Get(int id),你应该将它们定义为 Dave A 提到的方法参数,如下所示:

public string GetByNumberAndId(int number, int id) {
   return "somevalue";
}

您可以像现在一样调用该方法:

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

您可以在其官方网站上阅读有关 WebApi 的更多信息。这个教程可以给你一个很好的推动,虽然它是在一年前写的,但它仍然是一个很好的资源。

于 2013-03-22T02:53:25.103 回答