MVC4从URL获得请求变量

问题描述:

我第一次使用MVC4,我试图创建一个WebService。 但是,当我尝试此操作时:http://localhost:****/api/mycontroller/?number=1&id=7 我无法从URL中检索数据。MVC4从URL获得请求变量

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

谢谢。

+2

为您的动作方法定义添加数字和ID参数 – 2013-03-21 20:43:44

我假设您指的是允许我们构建RESTful应用程序的WebApi。如果是,那么在ApiController中甚至不存在Request对象,因为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)你应该将它们定义为方法参数戴夫中提及,像这样:

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

,你可以直接调用该方法,你现在就在做:

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

你可以在它的official site上了解更多关于WebApi的信息。 This tutorial虽然是一年前写的,但可以给你一个很好的推动,但它仍然是一个很好的资源。