Web APIの現在の最新の安定したリリース(2012年8月以降)ではサポートがありません。したがって、使用したいのがWeb API RTMだけの場合は、配管全体を自分で実装する必要があります。
そうは言っても、ODataプレリリースパッケージは、新しいDelta<T>オブジェクトを介した部分的な更新を非常にうまくサポートします。現在、Microsoft.AspNet.WebApi.ODataパッケージはすでにRCバージョン(0.3)であり、 http://www.nuget.org/packages/Microsoft.AspNet.WebApi.ODataから入手できます。
それをインストールすると、それに応じてそれを使用できます。
[AcceptVerbs("PATCH")]
public void Patch(int id, Delta<Person> person)
{
    var personFromDb = _personRepository.Get(id);
    person.Patch(personFromDb);
    _personRepository.Save();
}
そして、あなたはこのようにクライアントからそれを呼び出すでしょう:
$.ajax({
    url: 'api/person/1',
    type: 'PATCH',
    data: JSON.stringify(obj),
    dataType: 'json',
    contentType: 'application/json',
    success: function(callback) {            
       //handle errors, do stuff yada yada yada
    }
});
Emailこれの明らかな利点は、どのプロパティでも機能することであり、更新するかどうかを気にする必要はありませんUsername。
http://techbrij.com/http-patch-request-asp-net-webapi非常によく似た手法を示しているため、この投稿も調べてみてください。
編集(詳細):PATCHを使用する
ために、Delta<TEntityType>オブジェクトにアクセスするためにODataパッケージを追加することを除いて、ODataに関連するものを有効にする必要はありません  。
次に、これを行うことができます。
public class ValuesController : ApiController
{
    private static List<Item> items = new List<Item> {new Item {Id = 1, Age = 1, Name = "Abc"}, new Item {Id = 2, Age = 10, Name = "Def"}, new Item {Id = 3, Age = 100, Name = "Ghj"}};
    public Item Get(int id)
    {
        return items.Find(i => i.Id == id);
    }
    [AcceptVerbs("PATCH")]
    public void Patch(int id, Delta<Item> item)
    {
        var itemDb = items.Find(i => i.Id == id);
        item.Patch(itemDb);
    }
}
あなたのアイテムがそうであるならば、言いましょう:
{
    "Id": 3,
    "Name": "hello",
    "Age": 100
}
あなたはでパッチを当てることができます/api/values/3:
{
    "Name": "changed!"
}
これでオブジェクトが正しく更新されます。
Delta<TEntity>変更を追跡します。これは、Typeの軽量プロキシとして機能する動的クラスであり、元のオブジェクト(つまり、DBからのオブジェクト)とクライアントから渡されたオブジェクトの違いを理解します。
これは、APIの残りの部分にはまったく影響しません(もちろん、ODataパッケージの依存関係を容易にするためにDLLを新しいものに置き換えることを除いて)。
PATCH + Deltaの動作を示すサンプルプロジェクトを追加しました-ここで入手できます(it.s VS2012)https://www.dropbox.com/s/hq7wt3a2w84egbh/MvcApplication3.zip