6

ビュー モデルの HttpPostedFileBase プロパティに画像を適切に投稿してバインドしていますが、同じプロパティをビュー モデルの基本クラスに配置すると、バイトがモデル バインドされません。イメージ名は引き続き表示されますが、コンテンツ ストリームは表示されません。

私は考えられるすべてをテストしました。助けてください!

これらの写真がすべてを物語っています: ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力

前もって感謝します。何か不明な点があればお知らせください。

アップデート

これは正当なバグだと思います。SOに投稿する前に、以下のすべての提案(1/26現在)を試しました。私も試しました:1.基本プロパティを仮想として作成し、子クラスでそれをオーバーライドします2.単に基本プロパティを取得/設定する子クラスに新しいプロパティを作成します

エレガントとはほど遠い私の解決策は、子クラスに「一時的な」プロパティを追加し、MVCアクションメソッドで最初に基本プロパティをそれに設定することです。本当の解決策が提示され、この詰まりを元に戻し、適切な修正を行うことができることを願っています.

4

1 に答える 1

0

私だったら、モデル クラス用の v.simple カスタム バインダーを作成し、手動でクランクします。DefaultModelBinder の弱点を取り除こうとするよりも、おそらくそれを行う方が簡単です (そして、将来のメンテナンスでより明白になります)。さらに、これは、モデル構造/コントローラー アクション/単体テストを (不必要に) 汚染する必要がないことを意味します。

デフォルトのモデル バインダーに基づいてバインダーを作成する方法については、次の記事をご覧ください: http://www.codeproject.com/Articles/605595/ASP-NET-MVC-Custom-Model-Binder

HTH

于 2015-02-11T10:24:43.787 に答える