他のさまざまなプロパティから値を計算するビューモデルに読み取り専用プロパティがあります。すべてのソース プロパティが使用できるわけではないため、投稿のモデル バインダーによって読み取られることは望ましくありません。
public class MyView
{
public int MyReadOnlyProperty
{
get
{
int result;
//do stuff
return result;
}
}
}
[Bind(Exclude)]
次のようにコントローラーメソッドに属性を追加しました。
[HttpPost]
public ActionResult Create([Bind(Exclude = "MyReadOnlyProperty")]MyView viewModel)
{
}
ただし、バインダーは引き続き除外されたプロパティを読み取ります。したがって、上記のコントローラー メソッドにポストバックすると、MyReadOnlyProperty
ゲッターが実行されます。ただし、コントローラーメソッドが呼び出される前。バインダーが投稿のプロパティを読み取っているのは奇妙に思えます。フォームの値を使用してプロパティを設定するだけだと思います。
これを回避する方法を誰か教えてもらえますか?