附加到现有视图中的元素

时间:2012-08-21 22:13:06

标签: jquery asp.net-mvc

我定义了一部分视图,在加载时可能会或可能不会被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>

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  1. 没有理由在ASP.NET MVC中使用foreach。真!这当然取决于你。框架可以为你做,为什么要浪费内置的东西?
  2. @EditorFor(m => Model.SelectedProducts)会做得很好。定义接收IEnumerable<yourtypeofproduct>的{​​{3}},其中包含另一个@EditorFor(Model.CategoryNetwork)和另一个具有相应类型的编辑器模板等.... 它的约定优于配置。

    1. 转到EditorTemplate并查找“动态添加项目”。关于如何在现有模型中添加更多项目,您可以找到答案。它基本上是对控制器进行Ajax调用,接收你想要追加的结构并使用jQuery附加它。
    2. 希望这对你有所帮助。