提问者:小点点

Web Api请求。CreateResponse HttpResponseMessage无intellisense VS2012


由于某种原因,现在在VS2012中是“红色”的,当我将鼠标悬停在IDE的用法上时,IDE会显示

无法解析符号“createResponse"

下面是ApiController类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Filters;
using GOCApi.Attributes;
using GOCApi.Models;
using GOCApi.Models.Abstract;
using AttributeRouting;
using AttributeRouting.Web.Http;

namespace GOCApi.Controllers
{
    [RoutePrefix("Courses")]
    public class CoursesController : ApiController
    {
        private ICoursesRepository _coursesRepository { get; set; }

        public CoursesController(ICoursesRepository coursesRepository)
        {
            _coursesRepository = coursesRepository;
        }

        [GET("{id}")]
        public HttpResponseMessage Get(int id)
        {
            var course = _coursesRepository.GetSingle(id);
            if (course == null)
            return Request.CreateResponse(HttpStatusCode.NotFound, "Invalid ID");
            return Request.CreateResponse(HttpStatusCode.OK, course);
        }
    }
}

当然,代码确实可以编译和工作,只是看到屏幕上所有的“红色”真的很烦人。此外,当我键入时,intellisense现在无法工作。这也是过去的工作,但我开始开发我的API的其他部分,只是回来构建控制器,所以我不知道发生了什么。

有什么想法吗?


共3个答案

匿名用户

null

匿名用户

因为这个扩展方法存在于中,所以您只需要将它包含在您的usings语句中。

using System.Net.Http;

匿名用户

这是因为你必须做到:

namespace GOCApi.Controllers
{
    [RoutePrefix("Courses")]
    public class CoursesController : ApiController
    {
        private ICoursesRepository _coursesRepository { get; set; }

        public CoursesController(ICoursesRepository coursesRepository)
        {
            _coursesRepository = coursesRepository;
        }

        [GET("{id}")]
        public HttpResponseMessage Get(int id)
        {
            var course = _coursesRepository.GetSingle(id);
            if (course == null){
               return this.Request.CreateResponse(HttpStatusCode.NotFound, "Invalid ID");
            }
            return this.Request.CreateResponse(HttpStatusCode.OK, course);
        }
    }
}

请注意,在我的示例中,编译器现在获取它。我看到这里的例子