MVC4从URL获取请求变量

时间:2013-03-21 20:35:25

标签: web-services asp.net-mvc-4

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

我如何获得这两个变量? Request.QueryString["ParameterName"]会导致错误,但无法识别此功能。

感谢。

1 个答案:

答案 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可以给你一个很好的推动,尽管它是一年前写的,它仍然是一个很好的资源开始。