0

ロード時にViewModelによってデータが取り込まれる場合と取り込まれない場合があると定義されたビューの一部があります。次に、ユーザーは、カテゴリや製品を選択して既存のコレクションに追加するなど、何らかの操作を行います。

このビュー (部分ビュー) の設定方法: ユーザーが [カテゴリ] を選択 -> [製品が表示されます]。ユーザーが製品を選択 -> コレクションに追加します。

ユーザーは、表示するカテゴリを定義する前のページに移動して、このページに戻ることができるため。コードはモデルでコレクションを探し、製品コレクションがそこにある場合はそれをレンダリングしますが、何も起こりません。

jQuery を使用してこのリストに追加する方法がわかりません。既存の要素がない場合に新しい要素を作成する方法を知っています。

ビューのセクションは次のように定義されます。

<div class="span4 selected-products">
    <h4>Products to track</h4>
       <ul class="SelectedProducts">
          @foreach (var item in Model.SelectedProducts)
          { 
            <li class="network">@item.SelectedCategory.CategoryName
              <div>
                  <ul>@foreach (var net in item.CategoryNetwork)
                      {
                        <li id="@net.CategoryNetwork.NetworkId"> @net.CategoryNetwork.NetworkName
                           <div>
                               <ul>
                                  @foreach (var product in net.Products)
                                  {
                                     <li id="@product.ProdID">@product.ProdName</li> 
                                   }
                                </ul>
                             </div>
                         </li>
                       }
                     </ul>
                   </div>
                </li>
            }
        </ul>
   </div>

助けてくれてありがとう。

4

1 に答える 1

0
  1. ASP.NETMVCでforeachを使用する理由はありません。本当に!もちろんそれはあなた次第です。フレームワークはあなたのためにそれを行うことができます、なぜ組み込みのものに労力を浪費するのですか?

@EditorFor(m => Model.SelectedProducts)うまくいくでしょう。を受け取るEditorTemplateを定義します。そのIEnumerable<yourtypeofproduct>中に@EditorFor(Model.CategoryNetwork)は、それぞれのタイプなどの別のエディターテンプレートがあります。設定より規約。

  1. この記事に移動して、「動的にアイテムを追加する」を探してください。既存のモデルにさらにアイテムを追加する方法についてのあなたの答えがあります。基本的に、コントローラーに対してAjax呼び出しを行い、追加する構造を受け取り、jQueryを使用して追加します。

これがお役に立てば幸いです。

于 2012-08-21T23:25:46.803 に答える