ASP.NET MVCコアWeb APIおよびEntity FrameworkコアでTryUpdateModelを使用してモデルを更新する

asp.net-core-mvc asp.net-core-webapi entity-framework-core

質問

ASP.NET MVC Core Web APIとEF Coreが新しく、以下のような単純なMVC Web APIデモを作成しています。

[HttpPut("{id}")]
public async void Put(int id, [FromBody]Student student)
    {
        if (ModelState.IsValid)
        {
            var stu = _context.Students
                .Where(s => s.StudentId == id)
                .SingleOrDefault();

            var updateResult = await TryUpdateModelAsync<Student>(stu, "", s => s.FirstName, s => s.LastName, s => s.EnrollmentDate);
            _context.SaveChanges();
        }

    }

問題は、 TryUpdateModelAsyncが機能しないため、変更がデータベースに更新されなかったことです。

私は疑問に思う:

  1. TryUpdateModelAsyncをMVC Web APIで使用できるのですか?

  2. 私は本当に次のような退屈なコードを書いてはいけません。同じタイプの別のオブジェクトにプロパティ値の設定をしないでください。 (これがTryUpdateModelAsyncを使用した最初の理由TryUpdateModelAsync

    stu.FirstName = student.FirstName;
    stu.LastName = student.LastName;
    stu.SomeOtherProperties = student.SomeOtherProperties;
    _context.SaveChanges();
    

.NETコアバージョン:1.1.0

ASP.Netコアバージョン:1.1.0

Entity Frameworkコアバージョン:1.1.0

人気のある回答

FromBodyはフォーマッタを使用してリクエスト本体をJSONオブジェクトにデシリアライズします。

TryUpdateModelAsyncはモデルバインドに依存し、バリュープロバイダーを使用してデータを取得します。

投稿されたデータをモデルバインドを使用するフォームポストに変更することができます。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ