27

何らかの理由で、Request.CreateResponseVS2012 では「赤」になり、使用法にカーソルを合わせると、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);
        }
    }
}

確かに、コードはコンパイルして機能しますが、画面にすべての「赤」が表示されるのは本当に面倒です。また、入力するとインテリセンスが機能しなくなりましたRequest.CreateResponse。これも以前は機能していましたが、API の他の部分の開発を開始し、コントローラーの構築に戻ったばかりなので、何が起こったのかわかりません。

何かご意見は?

4

6 に答える 6

7

使用できます

 HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.Gone)

それ以外の

 Request.CreateResponse(HttpStatusCode.Gone)
于 2014-08-13T04:40:42.450 に答える
6

これは、次のことを行う必要があるためです。

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);
        }
    }
}

に注意してくださいthis
私の場合、コンパイラはそれを取得します。ここで例を見た

于 2014-01-19T11:11:40.687 に答える
0

プロジェクトへの参照を追加しますSystem.Web.Http。それから加えて

Using System.Web 

csファイルの先頭に。

于 2016-10-05T11:19:12.273 に答える
-2

これは、VB.NET と Request.CreateResponse の既知の問題です。

回避策があります: vb.net Webapi プロジェクトに request.CreateResponse がありません

于 2014-01-16T14:36:29.050 に答える