誰もがこれに運があったのですか?ASP.NET MVCのUpdateModelで動作するIncludePropertiesを取得できないようです
public string Name { get; set; }
public string Details { get; set; }
public DateTime? Created { get; set; }
、その後、私は実行します:
var myModel = getCurrentModelFromDb(id);
UpdateModel(myModel, "ModelName", new string { "Name", "Details" });
べきこのONLY更新を
私は単純なモデルを持っている場合のはと言わせて、私はそれを正しく理解すれば、私に知らせてください。名前と詳細のプロパティ? 「作成済み」のデータベースから既に日付があったとします。上記を実行すると、作成日が01-01-0001に設定されているようです。私は、明示的にこのフィールドを除外しようとすると、
また、:
UpdateModel(myModel, "ModelName",
new string { "Name", "Details" }, new string { "Created" });
それはまだ01-01-0001に設定されています。これはバグですか、私が間違っているのですか?
私が効果的にやりたいことは、対応するフォームフィールドがあるモデルプロパティを更新するだけですが、dbフェッチだけで設定された残りのものはそのままにして、nullまたはdefaultに設定しません。それが現在行われているようです。
実際のシナリオと上記との唯一の違いは、リスト上でupdateModelを使用していることです。そのため、listFromDb(parentId)を取得してからupdateModel(myList、 "ListPrefix")を適用しています。 [0]、[1]などで各アイテムをピックアップするものです。すべての名前が更新されているので動作しますが、それ以外のものは更新されません。
更新:おそらく 'includeProperties'は、バインドの仕組みと同様に、フォームから含めるプロパティを定義することだと認識しています。 * *の場合、どうすれば特定のモデルのプロパティのみを更新するように指示できますか?
ご協力ありがとうございます。 – GONeale
こんにちは、私はそこに何が起こっているのかを見るために同じルートをソースコードに従いました(私のドロップダウンリストでは多くの問題を抱えています。 リフレクターではどうしたのですか? MVCフレームワークでいくつかの呼び出しスタックを取得できるようになると便利でしょう。 – Jason