問題タブ [updatemodel]
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.
c# - MVCのUpdateModelが奇妙に動作し、値を元に戻します。なんで?
MVC(2)を使用して、またEntityFrameworkフレームワークを使用して更新しようとしているオブジェクトがあります。
私は多くのコードを提供していないことを知っていますが、それが本当に必要だとは感じていません。私がこのようなロジックを持っている理由は、私が説明します:
- カスケードドロップダウンがいくつかあり、ドロップダウンの1つが空の場合、jQueryを使用して「UNKNOWN」値(たとえば、-1などのID)を入力します。
- したがって、値-1を取得すると、別のテーブルにあるUNKNOWN値を作成します。
- 次に、そのオブジェクトを見つけて、に割り当てます
Fruit
このようなコード:
行が実行された後UpdateModel(object);
、たとえば、私が設定した値はFruit
、フォームから送信された値(-1)に戻り、EntityFramework.SaveChanges();
FKの反対に失敗します(id -1のフルーツが存在しないため)。十分に公平ですが、それは私があなたに割り当てたものではありません!
なぜそれが元に戻るのかわかりません。なぜなら、最初AddToFruits()
の後に未知のものがデータベースに正常に存在するからです...そしてUpdateModel(object);
それが存在するまではobject
...
私が割り当てたようにそれを追加した場合、FK制約の例外はありません。しかし、MVCのUpdateModelは、奇妙なことを実行し、デフォルトで(おそらく、フォームの送信で発生したもの)、それを台無しにすることを決定します。
なぜこれが起こるのですか?どうすれば修正できますか?
asp.net-mvc-3 - MVC 3 - ModelState が有効でない場合、ViewModel プロパティを Action のコレクションで再設定する
ドロップダウンをフォームに入力するためのコレクションを含むいくつかのプロパティを持つ ViewModel があります。get Action では、これらのプロパティが入力され、ビューが適切にレンダリングされます。
ユーザーがフォームを送信すると、Post アクションで、フォームに入力されたすべてのデータが ViewModel に含まれますが、ブラウザがそれらを送信しないため、すべてのコレクション プロパティが null になります。ModelState が有効な場合は問題ないので、もう必要ありません。ただし、ModelState が有効でない場合は、エラーを修正するためにフォームを再度表示する必要があります。
MVC はこれらのコレクションを一時的にどこにでも格納しますか? ビューモデルのプロパティは取得アクションと同じ値で簡単に入力できますか、それとも (キャッシュまたは新しいクエリから db に) 手動で入力する必要がありますか?
MVC は元の値を保存するので、アクション後の検証中に使用できると思いましたが、わかりません。
ありがとう
asp.net-mvc - (Try)UpdateModel の使用方法
(Try)UpdateModel を使用する正しい方法は何ですか?
これを実行すると:
TryUpdateModel
true を返し、ViewData
エラーがなく、- しかし、私
Proxy
は更新されていません。
アクション方法
投稿データ
モノのクラス
EDIT:フォームコレクションを明示的に渡そうとしました
TryUpdateModel(Proxy, TypeName, idontknow)
編集#2:(NickLarsenへの返信)
- VSとサーバーを再起動しましたが、変化はありません。
- 値は実際には FormCollection にあります。
- モックデータが動く!ここで何かを台無しにしているに違いないことはわかっています。
- デバッガーを使用して値を確認します。
asp.net-mvc-3 - TryUpdateModel / UpdateModel が機能しませんか?
データベースに存在する複数のオブジェクトを更新して新しいオブジェクトを保存しようとしていますが、うまくいきませんか?
これが私のコードです:
TryUpdateModel の後に db.SaveChanges(); を実行した場合 参照整合性を持つ System.Data.UpdateException を取得します
そして、コードを例のようにすると、更新されません! :S
そうそう、代わりに UpdateModel() も試しました。
助言がありますか?
前もって感謝します!
乾杯
javascript - MVC3-複数の要素が同じIDを持つ場合のjQuerydatepicker
私はデートピッカーで奇妙な状況にあり(私たち全員ではありませんか?)、アドバイスをもらいたいと思っています。
場所のリストが表示された画面があり、場所ごとに[編集]をクリックしてその場所を編集できます。[編集]リンクの下に[編集]が表示され、一度に複数の場所を編集できます。これは、同じビューが画面上に複数回レンダリングされることを意味します。したがって、同じIDを持つ複数のフィールドが存在します(4つの場所を編集すると、4つの「DateOpened」フィールドになります)。
したがって、ビューをロードすると、javascriptは次のようにそれを必要とするすべてのフィールドに日付ピッカーを追加します。
正常に動作しますが、おそらくすでに理解しているように、カレンダーの日付をクリックすると、複数の編集ウィンドウが開いているときに最初の[DateOpened]フィールドに入力されます。
一般的なjQueryの選択のように、特定の親内のフィールドを使用するように日付ピッカーに指示する方法はありますか?
...または、MVCのUpdateModel()関数を壊さずにフィールドに異なるIDを与える方法はありますか?または他のアドバイスはありますか?
c# - UpdateModel() は何をしますか?
簡単に言えば、何をするのUpdateModel()
ですTryUpdateModel()
か?私は(SOまたはWeb上で)それが実際に何をするのか(明確な言葉で)の明確な説明を見つけることができないようです.それを使用するのに問題がある人だけです.
VisualStudio のインテリセンスも役に立ちません。私が尋ねる理由は、たとえば、コントローラーにこれがある場合:
を設定してモデルを既に更新していませんvm.BA.StatesTraveledTo
か? UpdateModel を実行する必要があるのはなぜですか? また、実際に次のことをしようとすると:
ModelState の値を調べると ( UpdateModel() を実行した後)、何かが変更されたことを示すものは何も表示されません。ModelState ディクショナリに新しいキーがありません。
本当に混乱しています。ありがとう!
編集:
ViewModel および Model クラスのソース コードを投稿します。
asp.net-mvc - エンティティコンテキストアクセス用のASPMVC3ベースコントローラー
私はMVC3プロジェクトにベースコントローラーを実装して、dbコンテキストからユーザーエンティティにアクセスする一般的な方法を可能にしました。
これはうまく機能し、すべてのコントローラーがオブジェクトにアクセスし、呼び出すことthis.db.MyEntity
でオブジェクトを取得できますUserDetails
this.GetActiveUserDetails()
ただし、エンティティに対して更新を実行しようとすると、問題が発生します。
UserDetails
オブジェクトを簡単に取得できる理由はありますが、呼び出した後にデータベースを確認してSaveChanges()
も、何も更新されていませんか?私は2つの異なる方法で自分のコンテキストにアクセスしていると思いますが、自分がどのようになっているかわかりません...!
編集:これがGetObjects.GetActiveUserDetails()メソッドです
私が知っている最もクリーンな方法ではありません...
asp.net-mvc - モデル バインド - 外部アセンブリに入力する
コア ライブラリによって参照されていないが、Web アプリケーションから参照されているアセンブリに型があります。例えば
今、私はコアライブラリに次のコードを持っています:
コードは一目瞭然ですが、値がフォーム コレクションに存在する場合でも、 latestPosts.NumPosts プロパティは更新されません。
これが機能しない理由と、別の方法があるかどうかを誰かが説明してくれれば幸いです。
ありがとう
asp.net-mvc-3 - MVC3 コントローラーで UpdateModel を呼び出す前に検証を無効にする方法
送信前にフォーム データを「保存」できるようにしたいと考えています。
フォームが無効な状態にある場合でも、ユーザーがフォームの進行状況を保存し、後で戻ってくることができるようにしたいと考えています。
UpdateModel
今、私の唯一の問題は、メソッドを使用してモデルを更新できるようにしたいということです。ただし、フォームが無効であるか、部分的に完成している可能性があるため、エラーがスローされます。
SAVEインスタンスで検証が無視されるように、次のメソッドに注釈を付ける方法はありますか?
保存する要素の 1 対 1 のマッピングを作成する手間を省きたい - これは私のフォールバック オプションですが、保守性はあまり高くありません。
entity-framework-4 - EFモデルの変更と実行時の新しいエンティティの作成
モデル(DB First)でEF4、エンティティでPOCO、UIでASP.Netを使用しています。もちろん、Bizレイヤーがあります。動的フォームジェネレータを設計する必要があります。ユーザーがフォームデザインからテーブルを作成し、実行時にEFモデルを更新し、実行時にPOCOオブジェクトとbizロジックを生成して、実行時にコンパイルすることにしました。
実行時にモデルを更新することに問題があります。何か助けはありますか?
よろしくお願いします-Hamid