我正在尝试在MVC 4.0(WebServiceREST)上执行GET请求,某些方法使用POST而其他方法使用GET,但我无法使其正常工作
我使用了[System.Web.Mvc.AcceptVerbs(HttpVerbs.Get)]
,但它仍然没有得到"The requested resource does not support the HTTP 'GET' method"
我的控制器:
public class RecuperarDatosAppController : ApiController
{
#region RecuperarClasesColectivas
[System.Web.Mvc.AcceptVerbs(HttpVerbs.Get)]
[ResponseType(typeof(List<ActividadesColectivas>))]
public IHttpActionResult RecuperarClasesColectivas(short idInstalacion, string secretKey = "NOSECRETKEY")
{
BsSecurity bSecurity = new BsSecurity(BsSecurity.Tipo.Publica);
if (bSecurity.comprobar(secretKey))
{
BsActividadesColectivas bsActividades = new BsActividadesColectivas();
return Ok(bsActividades.GetActividadesColectivas(idInstalacion));
}
return NotFound();
}
#endregion
}
答案 0 :(得分:2)
虽然您声明这是MVC并将其标记为此类,但它实际上是Web API,因为您继承自ApiController。因此,您应该使用[HttpGet]
命名空间中的System.Web.Http
attribute来修饰方法。请注意,将其重命名为Get
就像Yoink一样,这是不必要的,尽管这是常见的惯例。
答案 1 :(得分:1)
我相信你需要先加上&#34; Get&#34;您希望通过GET请求公开的方法。
因此请尝试GetRecuperarClasesColectivas
而不是RecuperarClasesColectivas
。
您仍然可以通过/api/RecuperarClasesColectivas/id
来呼叫它,例如,路由只需要&#34; Get&#34;部分添加。