【问题标题】:Ajax.ActionLink, how to send the selected object in the partial view? asp.net mvcAjax.ActionLink,如何在局部视图中发送选中的对象? asp.net mvc
【发布时间】:2009-10-19 10:57:22
【问题描述】:

我猜这是一个菜鸟问题,但它来了:

我有一份产品清单:

<% 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,这样当我点击一个产品的描述时,该产品会从页面底部插入到Partial View中? 我尝试了一些与UpdateTargetId="productForEdit" 的组合,但没有成功。

目的是在页面中有一个快速编辑工具。

【问题讨论】:

标签: asp.net-mvc ajax


【解决方案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>

这确实需要一个ProductController 和一个名为GetProduct 的操作,它接受一个参数productCode。让此操作返回视图“产品/编辑”。 您也可以将整个产品作为参数传递给操作方法,但这不会改变基本思想。祝你好运!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多