Возврат кода состояния http из контроллера веб-API

Я пытаюсь вернуть код состояния 304, не измененный для метода GET в контроллере веб-API.

Единственный способ, которым я преуспел, был примерно таким:

public class TryController : ApiController
{
    public User GetUser(int userId, DateTime lastModifiedAtClient)
    {
        var user = new DataEntities().Users.First(p => p.Id == userId);
        if (user.LastModified <= lastModifiedAtClient)
        {
             throw new HttpResponseException(HttpStatusCode.NotModified);
        }
        return user;
    }
}

Проблема здесь в том, что это не исключение, оно просто не изменено, поэтому кэш клиента в порядке. Я также хочу, чтобы возвращаемый тип был пользователем (как показано во всех примерах веб-API с помощью GET), а не возвращал HttpResponseMessage или что-то в этом роде.

213
задан abatishchev 7 February 2016 в 12:42
поделиться