Sto cercando di restituire un codice di stato di 304 non modificato per un metodo GET in un controller API Web.
L'unico modo in cui sono riuscito è stato qualcosa del genere:
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;
}
}
Il problema qui è che non è un'eccezione, non è stato modificato, quindi la cache del client è OK. Voglio anche che il tipo restituito sia un Utente (come mostrano tutti gli esempi di API Web con GET), non restituire HttpResponseMessage o qualcosa del genere.
new HttpResponseMessage(HttpStatusCode.NotModified)
? Non funziona?
beta
o costruisci di notte ?