2013-12-23 93 views
0

我使用MVC 4Ajax.BeginForm更新,但它仅更新的第一个元素<div>局部视图MVC 4 foreach循环

查看:

@model List<CSP1225.Models.Item> 
@{ 
    ViewBag.Title = "RecentItems"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
<link href="~/CSS/jobs.css" rel="stylesheet" /> 


@{ var convert = ViewBag.convert; 
} 
<div> 

    @foreach (var item in Model) 
    { 
     <div class="job-item"> 
      <div class="inner"> 
       <div class="span8 job-span"> 
        <!--start of job list container div--> 
        <div id="ja-joblist"> 
         <ol id="ja-searchjoblist"> 

          <li class="job-item">@{ var PriceLE = @item.Price * convert;} 
           @using (@Ajax.BeginForm("_AddToCart", "Home", item, new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "cart" }, null)) 
           { 

            <!-- job item right section--> 
            <div class="inner"> 
             <div class="ja-job-meta clearfix"> 
              <span class="ja-job-category"><a href="@item.ItemURL" target="_blank">@item.ItemName</a></span> 
              <span class="ja-job-category">@item.Price $</span> 
              <span class="ja-job-category">@PriceLE LE</span> 
              <div id="cart"></div> 

              <button type="submit">Add to Cart</button> 

             </div> 
            </div> 
           } </li> 

          <!-- end of job item right section--> 





          <!-- end of job item --> 

         </ol> 

        </div> 
       </div> 
      </div> 
     </div> 
    } 
    @Html.ActionLink("Go Back", "Index", "Home", new { @class = "makeneworder" }) 

</div> 

和控制器:

public ActionResult _AddToCart(Item model) 
     { 
      ItemModel it = new ItemModel(); 
      it.itemName = model.ItemName; 
      it.itemUrl = model.ItemURL; 
      it.quantity = 1; 
      it.unitprice = model.Price; 
      it.weight = (int)model.Weight; 
      it.ItemCategory =(int)model.CategoryID; 

      CartList.Add(it); 
      ViewBag.convert = (decimal)_db.Currencies.Where(x => x.Name == "Dollar").FirstOrDefault().Value; 
      ViewBag.list = CartList; 
      return PartialView(); 

     }  

局部视图:

<p>Added to Cart</p> 

但视图返回多个元素(只要列表中包含的元素),当我点击添加到购物车它更新的第一个元素..我明白,因为你无法给另一<div>相同的ID却怎么也我修复它?

+0

你有'jquery.unobtrusive-ajax.js'纳入这一页? – Zabavsky

回答

0

你可以创建一个动态的ID喜欢

@{ var divID = 1; } 

然后使用它像

UpdateTargetId = "cart" + divID } 

<div id="[email protected]" ></div> 
+0

非常感谢你:) – YaraHanaa