我第一次使用MVC4而且我正在尝试创建一个WebService。
但是,当我尝试这样做时:http://localhost:****/api/mycontroller/?number=1&id=7
我无法从URL中检索数据。
我如何获得这两个变量?
Request.QueryString["ParameterName"]
会导致错误,但无法识别此功能。
感谢。
答案 0 :(得分:2)
我假设您指的是允许我们构建RESTful应用程序的WebApi。如果是,则Request
中甚至没有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(int id)
之外的GET中捕获查询字符串,你应该将它们定义为Dave A提到的方法参数,如下所示:
public string GetByNumberAndId(int number, int id) {
return "somevalue";
}
你可以像现在一样调用方法:
http://localhost:****/api/mycontroller/?number=1&id=7
您可以在official site上阅读有关WebApi的更多信息。 This tutorial可以给你一个很好的推动,尽管它是一年前写的,它仍然是一个很好的资源开始。