問題タブ [begincollectionitem]
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# - Html.BeginCollectionItem の適切な使用
私は MVC/Razor/Web が初めてで、最終的にアイテムのリストを編集できるようになることを望んでいます。現在、Html.BeginCollectionItem を使用してこれらのアイテムを表示しようとしていますが、機能していません (エラーはなく、表示されません)。私のアイテム。) 以下に私のコードをリストしました:
モデル:
コントローラ:
メイン ビュー:
部分図:
注意すべきことの1つは、メインビューに足を踏み入れ、「アイテム」にデータがありますが、部分ビューにはテキストボックスなどが表示されないことです..私はWebコードに慣れていないので、単純なものが欠けていることを願っています(多くのチュートリアルを見てきましたが、何かを見落としているだけかもしれません)
提供できる追加情報があれば教えてください。
asp.net-core - ASP.net Core での BeginCollectionItem の使用
asp.net コアで Steve Anderson の BeginCollectionItem を使用できません。を使用すると、部分ビューでエラーが発生しました
タイプ 'HtmlHelper' は、参照されていないアセンブリで定義されています。アセンブリ 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' への参照を追加する必要があります。
ASP.netコアでBeginCollectionItemの機能を実現する別の方法はありますか?
javascript - Html.BeginCollectionItem ヘルパーを使用してコレクションを渡す部分ビュー
ここで Stephen Muecke からの回答を理解するために小さなプロジェクトを作成しました: Submit same Partial View called multiple times data to controller?
ほとんどすべてが機能します。JavaScript は部分ビューから新しいフィールドを追加します。部分ビューのコントローラー メソッドによって挿入された「一時」値によって、それらがモデルにバインドされていることがわかります。
ただし、新しいフィールドを送信すると、AddRecord() メソッドは、モデルが渡されていないことを示す例外をスローします (「オブジェクト参照がオブジェクトのインスタンスに設定されていません」)。
また、ページ ソースを表示すると、BeginCollectionItem ヘルパーは、既存のレコードを表示するメイン ビューのテーブルの周囲に非表示のタグを挿入しますが、javascript が追加する新しいフィールドの周囲には挿入しません。
私は何を間違っていますか?私はこれでかなり新しいので、あなたの忍耐に感謝します!
私の主な見解:
私の部分的なビュー:
私のモデル:
私のコントローラーで:
jquery - 同じビューでコレクションからアイテムを追加および削除するビュー
クライアントが望む特定の方法で、ユーザーがリスト内のオブジェクトを追加および削除できるビューを作成しています。ユーザーは、送信する前にページで複数のフォームを追加または削除できる必要があります。ページが投稿されると、リストに既に含まれているものを表示し、各項目を削除するオプションがあり、ユーザーが再度送信する前にオブジェクトを追加/削除できるようにする必要があります。
JQuery と部分ビューを使用して、ユーザーが送信前に新しいフォームを追加または削除できるようにしました。私が理解できないのは、以前の送信からリストに既にあるオブジェクトを削除するボタンを提供する方法です。
誰でもこれで私を助けることができますか? それは大歓迎です。
これが私がこれまでに理解したものです。私からしてみれば:
新しいオブジェクトにデータを追加するためのフォームを含む部分ビュー:
私のコントローラー:
私のビューモデル:
asp.net-mvc - ASP.NET MVC + jQuery Tab を使用して 1 対多の関係を取得する
BeginCollectionItemによって生成されたjQuery タブを使用するセクションを持つフォームがあります。これは、1 対多の関係によって行われます。フォーム内に複数のタブを作成して送信できます (newForm.cshtml)。ただし、編集に関しては、特にフォームを取得する必要がある場合 (複数のタブに情報が入力されている場合)、ここで立ち往生しています。
したがって、シナリオは単純です。送信されたフォームのリストを表示するテーブルがあり、行の編集リンクをクリックして、取得したフォームを編集できます。現時点では、NewForm の Name しか取得できませんが、Family タブに関連付けられている他の Name は取得されません。
モデル:
Edit.cshtml:
Family.cshtml:
コントローラ:
newForm に関連付けられたファミリ (タブ) の情報を取得するにはどうすればよいですか?
編集
Stephen のアドバイスを反映して、複数のファミリを取得することはできていますが、ファミリごとにタブを作成できないという別の問題に直面しています。コードで試してみましたが、タブが作成されますが、奇妙な場所に配置されます。助言がありますか?
javascript - MVC 5 - BeginCollectionItem を使用する部分ビューからの JavaScript イベントの登録
次のような部分ビューがあります。
これは、次のように親ビューに埋め込まれます。
それはすべて機能しますが、部分的なビューからわかるように、data-list を使用して検索可能なボックスを追加したいので、コントローラーにメソッドを追加します。
次に、AJAX を使用してこのデータ リストに入力する JavaScript を追加します。
この JavaScript は、部分ビューも埋め込んでいる親ビューに含まれています。しかし、ジョブ レコードを追加して、入力ボックスに何かを入力すると、ID が であるにもかかわらず、何も実行されませんproject
。
私の質問は、親ビューから部分ビューで発生するイベントを登録するにはどうすればよいかということです。または、これを修正するために部分ビューにjavascriptファイルを埋め込むことができますか? さらに難しい質問は、ジョブを追加するときに id の重複を防ぐにはどうすればよいBeginCollectionItem
ですか? 複数の行を追加すると、複数のproject
id 入力ボックスが追加されるためです。
アップデート
@Stephen は、この問題を修正するのに大いに役立ちました。<datalist>
タグを部分ビューから削除してメイン ビューに配置し、id の代わりにクラスを使用しました。次に、JSを次のように変更しました。
$(this)
このようにして、入力ボックスの AJAX 呼び出しを使用して検索できます。私が抱えていたもう1つの問題は、クリックされた入力ボックスを確認して、他のものを更新できるようにすることでした。
どの呼び出し:
2 つの AJAX 呼び出しを行っているため、少し直感的ではありませんが、特定の要素を要求しているため、2 つ目の呼び出しは重くなりません。