0

以前はサーバーからクライアントにラウンドトリップし、うまく戻ったオブジェクトがあります(つまり、フォームの編集と表示は正常に機能しました)。ただし、そのオブジェクトに複合型を追加し、それを処理するためのカスタムModelBinderを作成しました。複合型は単一の文字列として表すことができますが、オブジェクトには10​​進数として格納されます(「0ft。3in。」は0.25として格納できると考えてください)。

ただし、私の問題は、検証が失敗した場合です。ユーザーが「asdf」と入力すると、検証は失敗します。ただし、Decimalに格納されるのは0だけです。したがって、ビューがレンダリングされてユーザーに送信されると、「asdf」ではなく「0」とエラーメッセージが表示されます。デフォルトのModelBinderではこの問題は発生しません(他のフィールドは無効な文字列を問題なくラウンドトリップします)。したがって、カスタムModelBinderに何かが欠けている必要があります...しかし、それは何ですか?

電話してみました

bindingContext.ModelState.SetModelValue(bindingContext.ModelName, New ValueProviderResult(null, attemptedValue, Globalization.CultureInfo.CurrentCulture))

しかし、それは何にも影響を与えていないようです。

4

1 に答える 1

0

StackOverflow に回答がありません。ASP.NET フォーラムで回答を得ました: http://forums.asp.net/p/1571473/3941396.aspx#3941396

于 2010-06-23T19:45:23.237 に答える