ASP.Net MVC で非常にイライラすることがわかったのは、デフォルトのモデル バインダーがRequired
、空の (文字列または null) 値を null 非許容値型にバインドするときに、単にターゲットをデフォルト値のままにするのではなく、暗黙的に注釈を適用することです。または、少なくともそれをデフォルトの動作にするオプションを提供します。
モデルのターゲット プロパティの型を null 許容値に変更するのが不便なシナリオを考えると、デフォルトのモデル バインダーが空の値を非 null 値にバインドする試みを単純にスキップできるようにするために使用できるコードの最短量はどれくらいですか?値型?をサブクラス化する必要があると想定していますがDefaultModelBinder
、目的の動作を実現するために何をオーバーライドする必要があるかわかりません。
例:
<input type="text" name="MyField"/>
値なしで送信:
public ActionResult MyAction(MyModel model)
{
// do stuff
}
public class MyModel
{
public int MyField { get; set; }
}
プロパティは、空の値がフォームから投稿されたときに表示されるMyField
デフォルト値を保持できるようにする必要があります。0
プロパティの型 a を単純に変更できないと仮定しますNullable<int>
。