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.NET MVC 中使用 foreach。真的!这当然取决于你。框架可以为你做,为什么要在内置的东西上浪费精力?

@EditorFor(m => Model.SelectedProducts)会做得很好。定义接收的EditorTemplateIEnumerable<yourtypeofproduct> ,其中有另一个@EditorFor(Model.CategoryNetwork)和另一个具有各自类型的编辑器模板等......它的约定优于配置。

  1. 转到这篇文章并查找“动态添加项目”。关于如何将更多项目附加到现有模型,您的答案就在于此。它基本上是对控制器进行 Ajax 调用,接收要附加的结构并使用 jQuery 附加它。

希望这对您有所帮助。

于 2012-08-21T23:25:46.803 回答