将@ Html.DisplayFor值从主视图传递到局部视图

时间:2018-01-22 03:34:34

标签: jquery asp.net-mvc

我希望在主视图中点击按钮后,将@Html.DisplayFor(modelItem => item.ProductCost)的值从主视图传递到局部视图。

    <table>
    <tr> 
        <th>@Html.DisplayNameFor(m => m.ProductCost)</th>
    </tr>
    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.ProductCost)
             </td>
             <td>
                <input class="search" type="button" value="Select"
                    data-assigned="@item.ProductCode" />
             </td>
         </tr>
    }
</table>

<div id="MyReports"> </div>  

和JavaScript代码:

$("document").ready(function () {
    $('.search').click(function () {
        var id = $(this).data('assigned');
        var route = '@Url.Action("DisplayPartialView", "Pedigrees")?id=' + id;
        $('#MyReports').load(route);
    });
});

我想获得该特定ID的Productcost。有人请指导我。

1 个答案:

答案 0 :(得分:1)

您可以使用具有Mvc form功能的ViewModel Ajax.BeginForm()来提交您的数据(推荐但需要重构现有代码)。

或者您只需添加data属性:

<input class="search" type="button" value="Select" data-assigned="@item.ProductCode" data-productcost="@item.ProductCost" />

传递GET参数,如assigned值:

$('.search').click(function () {
    var id = $(this).data('assigned');
    var cost = $(this).data('productcost');
    var route = '@Url.Action("DisplayPartialView", "Pedigrees")?id=' + id + '&cost=' + cost;
    $('#MyReports').load(route);
});

不要忘记在cost控制器功能中添加Pedigrees.DisplayPartialView(int id, string cost)参数。