doubleモデルのタイプのプロパティに対応するテキストボックスの入力を検証しようとしています。ユーザーが入力した場合"foo"、エラーを表示できるように、それについて知りたいと思います。ただし、ValueProviderは値をサイレントにドロップしています(エラーはに追加されませんModelState)。
通常の送信では、フォーム"2"に対応するテキストボックスに入力しmyDoubleて送信します。検査controllerContext.HttpContext.Request.FormするとmyDouble=2、他の正しい入力の中でも、がわかります。bindingContext.ValueProvider.GetValue("myDouble") == 2、 予想通り。bindingContext.ModelState.Count == 6とbindingContext.ModelState["myDouble"].Errors.Count == 0。_ すべてが良好で、モデルは期待どおりにバインドされます。
次に、フォームに対応するテキストボックスに「foo」と入力しmyDoubleて送信します。調べcontrollerContext.HttpContext.Request.FormてmyDouble=fooみると、それは私が期待していたことです。ただし、bindingContext.ValueProvider.GetValue("myDouble") == null(bindingContext.ModelState.Count == 5正確な数は重要ではありませんが、以前より1つ少なくなっています)。を見ると、送信されなかっValueProviderたかのようmyDoubleになり、モデルのバインドは送信されなかったかのように発生します。これにより、不良入力と入力なしを区別することが困難になります。
これはの予想される動作ValueProviderですか?ValueProviderカスタムを実装せずに変換が失敗したときにレポートを取得する方法はありValueProviderますか?ありがとう!