2013-11-22 24 views
0

我有我的看法兩個div在同一頁面上顯示有關特定記錄的詳細信息,左邊一個包含了所有的產品可供選擇。我想在右側div中的同一頁面上顯示所選產品的詳細信息。當我第一次加載頁面時,右側div應該包含第一條記錄的詳細信息。之後,當我點擊任何鏈接時,它應該改變細節。我是MVC和實體框架的新手。我試圖做到這一點,但不知道。如果我想在點擊產品超鏈接後在下一頁顯示詳細信息,我可以這樣做。請嘗試解決我的問題。謝謝!如何在ASP.net MVC

Products.cshtml:

@model List<productList.Models.tbl_product> 

<div class="product"> 
    <ul class="list"> 
     @foreach(var item in Model) 
     { 
      <li> 
       <a href='@Url.Action("Product","Home",new {id = item.ProductId })'> 
        <span class="ProductName">@item.ProductName</span> 
       </a> 
      </li> 
      </span></a> 
</div> 

<div class="productDetails"> 
    <ul class="listdetails"> 
     @foreach(var item in Model) 
     { 
      <li> 
       <span class="ProductName">@item.ProductName</span> 
       <div class="ProductDesc"> 
        @item.ProductDetails 
       </div> 
      </li> 
     } 

HomeController.cs:

public ActionResult Product() 
{ 
    return View(dbentity.tbl_product.ToList()); 
} 
+0

使用Ajax調用這個。構建一個局部視圖來顯示點擊項目的細節並刷新第一個div的部分點擊。在這裏看到我的答案 –

+0

你可以給這個類型的問題的一些例子的鏈接..... – user2802591

+0

基本上你需要兩個操作方法,主視圖,partialview和代碼爲ajax調用。我對我的回答更新:) –

回答

0

使用的RenderPartial第一個產品負載,即使用jQuery阿賈克斯後,加載第一其它

控制器動作產品列表負載

public ActionResult Product() 
{ 
    return View(dbentity.tbl_product.ToList()); 
} 

PartialView.cshtml

@model Product 

<label>Name:</label>@model.Name 

在主視圖

@model IList<Product> 
<div class="product"> 
<ul class="list"> 
@foreach(var item in Model) 
{ 
<li> <a [email protected]("ProductDetail","Home",new {id=item.ProductId})' 
<span class="ProductName"> @item.ProductName</span></a></li>  
} 
</ul> 
</div> 

<div id="product-detail"> 
@{Html.RenderPartial("PartialView", Model.FirstOrDefault());} 
</div> 

還需要另一個動作裝載每個產品

public ActionResult ProductDetail(int id) 
{ 
var model=products.Find(id); 
return ("PartialView",model); 
} 

AJAX調用

$("div.product a").click(function(e){ 

    var url=this.href; 
    $.get(url,{},function(data){ 
    $('#product-detail').html(data); 
    }); 
    e.preventDefault(); 

}); 
+0

我試圖使用部分視圖,但打開一個新頁面,這是部分視圖和記錄的詳細信息顯示在那裏。我想在同一頁上。 – user2802591

+0

@ user2802591,在上面的代碼中添加了'e.preventDefault()',這將防止在新窗口中打開結果。 –