2009-10-19 60 views
0

我想這是一個noob問題,但在這裏說到:Ajax.ActionLink,如何發送部分視圖中的選定對象? asp.net的MVC

我的產品列表:

<% foreach (var item in Model) { %> 

    <tr> 
     <td> 
      <%= Html.Encode(item.code) %> 
     </td> 
     <td> 
      <%= Html.Encode(String.Format("{0:g}", item.date)) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.category) %> 
     </td> 
     <td> 
      <%= Html.Encode(item.description) %> 
     </td> 
     <td> 
      <%= Html.Encode(String.Format("{0:F}", item.price)) %> 
     </td> 
    ...... 
} 

而且畢竟這些的局部視圖(在同一個頁面):

<div id="productForEdit"> 
      <fieldset> 
       <legend>Your Selected Product</legend> 
       <% Html.RenderPartial("~/Views/Products/Edit", productObject); %> 
      </fieldset> 
    </div> 

如何使用Ajax.ActionLink,所以,當我會點擊一個產品的描述,該產品將在局部視圖從頁面底部插入? 我嘗試了一些與UpdateTargetId="productForEdit"的組合,但我沒有成功。

目的是在頁面中有一個快速編輯工具。

+0

看看這裏http://stackoverflow.com/questions/7295835/how-can-i-load-partial-view-inside-the-view和這裏http://pluralsight.com/training/players/ PSODPlayer?author = scott-allen&name = mvc3-building-ajax&mode = live&clip = 0&course = aspdotnet -mvc3-intro – 2013-04-22 20:35:27

回答

1

我認爲這應該工作:

<td> 
    <%= Ajax.ActionLink(Html.Encode(item.description), /* link text */ 
         "GetProduct", /* action name */ 
         "Product", /* controller name */ 
         new { productCode = Model.code }, /* route values */ 
         new AjaxOptions() { InsertionMode = InsertionMode.Replace, 
              UpdateTargetId = "productForEdit" }) %> 
</td> 

這並期待與命名GetProduct一個動作,這需要一個參數productCode一個ProductController。讓此操作返回「產品/編輯」視圖。 您也可以將整個產品作爲參數傳遞給動作方法,但這不會改變基本想法。祝你好運!

+0

您的回答和這個http://blog.goyello.com/2009/09/24/asp-net-mvc-問題與ajax-actionlink /解決了我的問題。 謝謝! – andreiursan 2009-10-19 14:13:38

相關問題