MVC试图做一个Get请求

时间:2015-03-23 13:41:00

标签: c# web-services asp.net-web-api

我正在尝试在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


}

2 个答案:

答案 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;部分添加。