2014-09-08 9 views
0

Мне нужно в web-api-сервере MCV4, чтобы вернуть http-статус пользователю (после вызова методов POST/GET).добавление ответа пользователю в mcv4 web-api

(Новый проект MCV4 и выберите: WEB-API).

У меня есть VS 2010, и я посмотрел образец на Returning http status code from Web Api controller, но это не сработало для меня.

Я использую ApiController для обработки методов GET/POST.

Для следующего кода:

[ResponseType(typeof(User))] 
public HttpResponseMessage GetUser(HttpRequestMessage request, int userId, DateTime lastModifiedAtClient) 
{ 
    var user = new DataEntities().Users.First(p => p.Id == userId); 
    if (user.LastModified <= lastModifiedAtClient) 
    { 
     return new HttpResponseMessage(HttpStatusCode.NotModified); 
    } 
    return request.CreateResponse(HttpStatusCode.OK, user); 
} 

я поставил выше в классе типа: apicontroller - ResponseType неизвестно, да и вообще, в коде, я добавил:

using System.Web.Http; 

Но, по-прежнему ResponseType неизвестно.

Я использую 32bit для моего win-api.

Как вернуть статус пользователю (будь то ошибка или ОК).

Спасибо :)

+1

"она не работает" является наихудшее описание проблемы. Разве вы не можете рассказать нам об этом «не работает»? «ResponseType неизвестен», как вы это измеряете? Каждый HTTP-запрос имеет статус, иначе он будет искажен, и браузер/клиент не поймут сообщение. Посмотрите в http-инспектор, такой как инструменты разработчика в вашем браузере или fiddler2 и посмотрите код состояния. Возможно, вам нужен ваш (не включенный) клиентский код? – spender

+0

Можете ли вы дать точное сообщение об ошибке? Вы говорите, что он не будет компилироваться? –

+0

Он не скомпилирован для: ResponseType. – Eitan

ответ

1

Согласно MSDN документу, ResponseTypeAttribute находится в пространстве имен "System.Web.Http.Description"

См: ResponseTypeAttribute

+0

Что мне писать в коде. В качестве примера я дал - он не компилируется. – Eitan

+0

@Eitan, вы проверили для этого, используя предложение в своем коде? "using System.Web.Http.Description" – Thangadurai

+0

Привет. Мне наконец-то удалось отправить ответ (не используя тип ответа). Я просто использую System.Web.Http.Description и объявляю свою функцию get как нечто вроде публичного значения HttpResponseMessage Post ([FromBody]) или публичного HttpResponseMessage Get(). .. и в теле функции do call: Request.CreateResponse соответственно моему поведению кода. Вы можете рассматривать этот случай как можно ближе. Спасибо, в любом случае :) – Eitan

Смежные вопросы