MVC4从URL获得请求变量
问题描述:
我第一次使用MVC4,我试图创建一个WebService。 但是,当我尝试此操作时:http://localhost:****/api/mycontroller/?number=1&id=7
我无法从URL中检索数据。MVC4从URL获得请求变量
我怎样才能得到这两个变量? Request.QueryString["ParameterName"]
导致错误,它不识别此功能。
谢谢。
答
我假设您指的是允许我们构建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虽然是一年前写的,但可以给你一个很好的推动,但它仍然是一个很好的资源。
为您的动作方法定义添加数字和ID参数 – 2013-03-21 20:43:44