Web API コントローラーの GET メソッドに対して変更されていない 304 のステータス コードを返そうとしています。
私が成功した唯一の方法は次のようなものでした:
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;
}
}
ここでの問題は、例外ではないということです。変更されていないだけなので、クライアント キャッシュは問題ありません。また、戻り値の型を User にしたい (すべての Web API の例が GET で示しているように) HttpResponseMessage などを返さないでください。