問題タブ [model-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
43129 参照

asp.net - テキストボックスを無効にしたモデルのバインド

定義しているテキストボックスがあります

アクションは次のように定義されます

これにPOSTすると、Username空白になります。他のすべてのプロパティは正しくバインドされますが、ユーザー名に変更@disabled="disabled"すると正しくバインドされ、すべてが機能します。@readonly="readonly"

モデルバインディングは無効なフィールドの値を無視しているようです。これを回避する方法はありますか?モデルにバインドするには、フィールドの値が必要です。読み取り専用を使用できますが、フィールドの値を編集できないことがユーザーに視覚的にわかるように、無効を使用することをお勧めします。

0 投票する
1 に答える
1287 参照

c# - 同じ名前の 2 つのフィールド

「個人用」モデルと「ビジネス用」モデルをカプセル化する ViewModel クラスがあります。私の問題は、両方のモデルに「Email」というプロパティがあり、モデル バインディングが 2 つを区別できないことです。

この問題を解決するために使用されていることを読みました[Bind(Prefix = ...が、これを達成する方法に関する簡潔な例を見ることができませんでした。

Bind Prefix を使用してこれを修正するにはどうすればよいですか?

0 投票する
1 に答える
644 参照

asp.net-mvc - MVC2モデルバインディング列挙可能?

さて、私はMVCでのモデルバインディングにかなり慣れていないので、私の質問は次のとおりです。

IEnumerableプロパティを持つモデルがある場合、そのモデルタイプをとるアクションに送信できるように、HtmlHelperをどのように使用しますか。

モデル例:

スニップを表示:

0 投票する
2 に答える
350 参照

nhibernate - ASP.Net MVC 2 は、HttpGet で渡された HttpPost メソッドで (わずかな変更を加えて) モデルの同じインスタンスを取得することが可能です。

私は複雑なエンティティユーザーを持っています:

Taxi は User の親です (Taxi has-many Users):

BaseEntity は public virtual int Id { get; プライベートセット; }

ユーザーを編集しようとすると問題が発生する

マイ ChangeAccountInfo.aspx

投稿の変更:

しかし、(User モデル) パラメータには User.Id == 0 があります --> User エンティティは編集前に 5でした
User.Login == "my new login"
User.Password == "my new password"
User.Taxi.Id = = 0 --> 編集前の User.Taxi エンティティは 3
User.Taxi.Name == "old hidden name"
User.Taxi.ClientIp == null --> 編集前の User エンティティは 192.168.0.1

Q: エンティティのすべてのフィールド (UpdateUser にある必要があります) をタグ「hidden」でマークせずに、HttpPost メソッドでそれらを変更しないことは可能ですか? 例: User.Taxi.ClientIp = null ではなく、User.Taxi.ClientIp = 192.168.0.1

問題があれば、私はnhibernateを使用しています。

0 投票する
2 に答える
1348 参照

asp.net - Asp.net MVC - モデル バインディング イメージ ボタン

非常に複雑なフォームがあり、MVC モデル バインディングを使用してすべての情報を取得しています

フォームには約10個の異なる送信ボタンがあり、2つの画像ボタンもあるため、発生する可能性のあるさまざまな送信をすべてキャプチャするように設定しました

画像ボタンの送信をキャプチャすることで少し賢くしようとしました (またはそう思った)、返された x 値をキャプチャできるように子クラスを作成しました

親クラスはこんな感じ

画像ボタンのhtmlは次のようになります

これは、Chrome を除くすべてのブラウザーで正常に機能します。

クロムでデバッグすると、Request.Form オブジェクトには期待される値が含まれていますが、モデル バインディングが発生した後、ViewDataObject の ImageButton プロパティが null に設定されています。

提出値の間で私が見ることができる唯一の違いは、Chrome が x を小文字 (ViewDataObject.ImageButton.x) として渡し、IE が大文字 (ViewDataObject.ImageButton.X) として渡すことですが、モデル バインディングとは思いませんでした。プロパティ名の大文字小文字に注意しました

誰にもアイデアはありますか?

編集=>明確にするために、私はこれの回避策を見つけようとしていません。他のすべてのブラウザで機能し、正しいデータが渡されていることを考慮して、この手法がChromeで機能しない理由を理解しようとしています終えた

0 投票する
0 に答える
186 参照

asp.net-mvc-2 - 複雑なオブジェクトを ActionFilterAttribute ActionParameters にバインドする方法は?

私の質問はかなり単純です: 私は次のようなカスタム ActionFilterAttribute を持っています (読みやすいように簡略化しています):

次に、コントローラーのアクションは次のようになります。

このコードでArgumentNullExceptionは、DefaultModelBinder.
もちろんobject、アクションでモジュールを受け取り、それを にキャストすることもできますModuleが、明らかに、この回避策を回避しようとしています。

手がかりはありますか?
みんな、ありがとう!

0 投票する
2 に答える
931 参照

wcf - WCFでのMVCスタイルのモデルバインディング?

ASP.Net MVC でできるのと同じ方法で、POST されたフォームの値を WCF 操作のパラメーターにバインドしたいと考えています。

したがって、たとえば、フォームに「customer.Name」および「customer.Age」パラメーターがある場合、名前付きのエンドポイント/操作に標準の HTML POST を作成して顧客パラメーターを取得し、MVC のようにインスタンス化してデータを入力する必要があります。 ...

WebInvoke とその UriTemplate プロパティを使用して単純なパラメーターをマップできるようです。MVC に似たモデル バインディングの方法が可能かどうかは誰にもわかりません。

ありがとう、マーク。

0 投票する
1 に答える
2277 参照

asp.net - Controller.TryUpdateModel() は詳細に何をしますか? なぜ失敗するのか

Controller.TryUpdateModel()ASP.NET MVCを使ってみました。詳細は何をしますか。私の例では失敗します (つまり、false を返します)。では、失敗の原因は何なのか、どうすればわかりますか?

0 投票する
2 に答える
2328 参照

asp.net-mvc - MVC2のSelectListItemsのカスタムHTML属性?

カスタム HTML 属性、特に Html.DropDownFor() によって生成された選択のオプション タグにクラスまたはスタイルを追加する必要があります。

私はそれで遊んでいますが、私の人生では、必要なものを機能させるために何をする必要があるのか​​ わかりません。

ドロップダウンを生成する色のリストがあると仮定すると、オプション値は色の識別子で、テキストは名前です...出力として表示できるようにしたいのは次のとおりです。

>

0 投票する
3 に答える
3582 参照

asp.net-mvc - ASP.NET MVC 2+ のモデル バインダーで DI/IoC コンテナーを使用する方法は?

User エンティティがあり、コンストラクターでその CreationTime プロパティを DateTime.Now に設定するとします。しかし、単体テストの採用者であるため、 DateTime.Now に直接アクセスするのではなく、 ITimeProvider を使用します。

ASP.NET MVC 2.0 アプリケーションで NInject 2 を使用しています。UserController と 2 つの Create メソッド (GET 用と POST 用) があります。GET 用のものは単純ですが、POST 用のものはそれほど単純ではなく、それほど前向きでもありません:P を構築できるようにするために、ITimeProvider の実装の参照を取得するようにモデル バインダーをいじる必要があるためです。ユーザー インスタンス。

また、デフォルトのモデル バインダーのすべての機能を保持できるようにしたいと考えています。

このシンプル/エレガント/その他を解決する機会はありますか? :D