Я пытаюсь вернуть код состояния 304, не измененный для метода GET в контроллере web 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 или что-то вроде этого.