問題タブ [formcollection]
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.
asp.net-mvc - ASP.NET MVC - ポスト内の FormCollection データを別のアクションに渡すにはどうすればよいですか?
フォームを含む「結果」ページがあり、「送信」をクリックすると、フォームが別のアクションに送信されます。ここまでは順調ですね...
ただし、これはユーザーがログインしている場合にのみ正常に機能します。そうでない場合、ユーザーは「ログイン」ページにリダイレクトされ、FormCollection のデータが失われます。
TempData を使用せずにこのデータを永続化する方法はありますか??
ありがとう!!
asp.net-mvc - ASP.NET MVCでのUpdateModelの正しい動作は何ですか?
UpdateModel
ASP.NET MVCのメソッドの観点から、皆さんが「正しい動作」と見なされるべきだと感じていることを知りたいと思います。
私がここで尋ねる理由は、おそらくこの機能が「設計による」ものであるかどうか、誰かがそれがそのようになっている理由を明確にすることができ、おそらくそれを別の方法で呼び出して目的の機能を実現する方法であると思います。人々の%はこれが機能することを望みますか?
本質的に、私の不満は、内のバインディングプロセスの動作にありますUpdateModel
。
フォームのデータフィールドがデータベース内のモデルを反映する単純なアクションメソッドを介してフォームを更新する場合Save
、最初にリクエストを保存するために、DBから既存のモデルを取得してから、関連するフィールドを更新します。これらは変更され、経由で送信され、既存のモデルにFormCollection
更新されました。UpdateModel
この機能は機能しますが、このDBが入力されたオブジェクトの既存のプロパティのいずれかが「リセット」されているようです。つまり、明らかに新しいオブジェクトと一致するものを除いて、それがまったく新しいオブジェクトであるかのように、nullまたは初期化のデフォルトに設定されているということFormCollection
です。
これは問題です。これは、オブジェクトに存在するが、必ずしもフォームに存在するとは限らない既存のプロパティ(子コレクションやオブジェクト、日付、UIに面していないフィールドなど)が空であり、半分のデータが残っているためです。おそらくIDのスタックを含むすべての欠落データが0に設定されているため、DBに保存できない使用不可能なオブジェクト。
これは望ましくない動作であり、でUpdateModel
プロパティが一致する場合にのみプロパティを更新する必要があると思いますFormCollection
。これは、既存のすべてのプロパティは変更されないが、更新は設定されることを意味します。ただし、これまでに推測されたことから、明らかにそうではありません。オブジェクトの新しいコピーがフォームからプロパティを更新し、新しいオブジェクトを返すように見えます。
最後に、これがどれほどの負担であるかという観点から言えば、半複雑なフォームを保存し、既存のすべてのオブジェクトデータを保持するための唯一の方法は、各プロパティを対応するフォームプロパティと手動で結合することです。フォームに存在するプロパティのみが更新されることを保証します。
私は推測する、
- これに同意する人は設計によるものですが、私の形のアプローチは最良の方法と結婚していますか?
- または、これでどのようにこれに取り組みましたか?
この人たちについて、お気軽にご意見をお聞かせください。ありがとうございます。
この問題に苦しんでいる人の別の例を次に
示します。複雑なデータ型のコレクションを使用してUpdateModelを呼び出すと、バインドされていないすべての値がリセットされますか?
ajax - ajax.actionlinkを使用してフォームコレクションを取得する方法
私はこのようなコードのコントローラーを持っています:
私はajax.actionlinkを使用してこのアクションを呼び出しています。
私の問題は、送信(入力)ボタンを使用する場合とは異なり、コレクションがnullであるということです。formcollectionには値があります。
asp.net-mvc - MVC 投稿値
asp.net MVC アプリケーションには、フォームを送信したときに値に問題がある (検証が失敗した) 場合に、古い値を維持してフォームが表示されるメカニズムがあります。それはどのように起こりますか?これらの値はどこに保持されますか? または FormCollection から収集しました。
ヘルプが適用されます。
よろしくパーミンダー
c# - MVC のジェネリック オブジェクト コントローラー、コードを改善できますか?
データグリッド内のオブジェクトのリスト (任意のタイプのオブジェクトのリスト) を表示し、ユーザーが任意のアイテムを更新できるようにするアプリケーションを作成しています。コードは、実行時まで表示されているオブジェクトについて何も知りません。更新のためにコードを改善できますか? Formcollection を使用してフォームからアイテムを取得し、ルーティング情報に基づいてクラスのインスタンスを作成しています。つまり、URL からオブジェクト (この例ではハードコードされた Employee) を取り出し、そのインスタンスを作成します。
asp.net-mvc-2 - MVC2: アクション リンクのコントロール値を読み取るにはどうすればよいですか?
一部のモデル情報を ActionLink に渡していますが、アクションにページ上の一部の入力の値も提供したいと考えています。たとえば、次のようなものがあるとします。
アクションが Model.Value (パラメーターを介して渡される) と MyInput の値の両方を認識するようにしたいと思います。通常は FormCollection を使用しますが、送信を行っていないため、このインスタンスでは使用できません。
では、MyInput の値を MyAction に渡すにはどうすればよいでしょうか。MyInput という名前のプロパティをモデルに追加する必要がありますか? それがうまくいくと仮定すると、より簡単な方法、または少なくともモデルの変更を伴わない方法はありますか?
asp.net - ASP.NET MVC2 Create MethodでFormCollectionを使用する適切な方法は?
現在、新しい ASP.NET MVC2 フレームワークを使用してアプリケーションを開発しています。当初、私は ASP.NET MVC1 でこのアプリケーションを書き始めましたが、基本的には MVC2 に更新しているだけです。
ここでの問題は、FormCollection オブジェクトと古い Typed オブジェクトの概念がよくわからないことです。
これは私の現在のコードです:
これは、MVC1 アプリケーションのコードです。
MVC2 で FormCollection に切り替えることの利点は何ですか?さらに重要なことは、どのように適切に使用されるのですか?
c# - asp.netmvcGETリクエストでformcollectionを空にする必要があります
簡単なアクションを投稿しています。
クエリ文字列の値が少ない場合でも、formcollection.Count
は0です。それは行動によるものですか?
asp.net-mvc - Actionresult は routelink によって呼び出されません。フォームコレクションが犯人?
私はMVCにかなり慣れていません。データベースを検索して結果を返す検索ページを設定しようとしています。検索ボックスは、ビューの Html.BeginForm 内にあり、次のようになります。
FormCollection を使用して、次のようなコントローラーに渡します。
ここまでは順調ですね。単語を入力して送信ボタンを押すと、Index が呼び出され、それに応じてデータベースが返されます。ul に結果が入力され、pageSize を超える結果 (私の場合は 10) がある場合、[次へ] リンクが表示されます。
「次へ」をクリックすると、デフォルトのページが読み込まれます。ページネーションなどはありません。私の Index ActionResult が FormCollection をパラメーターとして持っているという事実に関係していると確信しています。文字列/整数のみを処理できることをどこかで読んだと思いましたか? MapRoute は次のとおりです。
私は何かを完全に見逃していますか、それともこれを処理する方法はありますか? jquery/ajaxを使用して検索リストボックスに含まれる文字列を送信できることはわかっていますが、後で検索をフィルタリングする手段としてチェックボックスを追加する予定があるため、そうしたくありません.
検索ボックスを追加する新しい FormCollection を作成したり、文字列を渡すだけなど、formCollection の値を設定するいくつかの異なる方法を試しました。
asp.net-mvc - formcollectionは、選択したhtml.listboxアイテムの値のみを保持しますか?MVC
私のシナリオは次のとおりです。2つのリストボックスがあります。1つはすべてのデータベースアイテムを含み、もう1つは空です。ユーザーは、必要なアイテムを完全なリストボックスから空のリストボックスに追加します。
フォームを使用して、ユーザーが追加したすべてのアイテムを送信しています。
問題は、リストボックスから選択されたアイテムのみが送信されることです。したがって、ユーザーが一部のアイテムの選択を解除した場合、それらはフォームに送信されません。私の見解は次のようになります。
私のコントローラーは次のようになります。
私はすべてを間違った方法で行っていますか?アイテムを提出するより良い方法はありますか?あなたならどうしますか?