将操作链接值从局部视图传递到视图

时间:2015-09-30 14:11:11

标签: c# jquery razor

在我看来,我有一个部分

<div id="AssNameSection" style="display: none;">
      <div id="AssNameSectionLoad"></div>
</div>

并且有一些jquery在勾选复选框时显示并打开该部分中的局部视图。

...
$("#AssNameSectionLoad").load(newurl);
这一切都有效。在已加载的子部分中,一些行数据带有操作链接,行ID作为ID。

我试图将行点击的ID传递给主视图进行编辑。

我弄清楚如何使用.click捕获另一个表单/视图/部分中的操作链接。

这可能吗,有人能说出正确的方向吗?

编辑更多信息

在assnamesectionload div中呈现的局部视图中的动作链接代码

 <td class="ActionLinks">                             
                        @Html.ActionLink("Link Text", "ActionName",
                         new { controller = "MyController", id = item.id },
                         new { @class = "my-class" })
                    </td>
                </tr>
            }

        </table>

html部分

    <div id="AssNameSection" style="">
                            <div id="AssNameSectionLoad">

<input name="__RequestVerificationToken" type="hidden" value="Zt9MlOm1zFuV_oAihoql_9aT-ch2fVkRs2oHodR1wCZkpMuhwLQHMS8_RTSRRcSCYBFlNa7psrVLu1-xhxAmc-jzhppX0UfbZ3gvzn62TQaJxtzpu4T_j3NtRXy2e6yH0">    <div>


        <div>
            <table class="table">

                <tbody><tr>
                    <th>
                        Relationship
                    </th>
                    <th>
                        Associated Name 
                    </th>
                    <th>
                        Options
                    </th>                    
                </tr>

<input id="txtAssNameLineid" name="item.id" type="hidden" value="12157PAR121600">                    <tr>
                        <td>
                            yyy
                        </td>
                        <td>
                            xxx
                        </td>

                        <td class="ActionLinks">                             
                            <a class="my-class" href="/MyController/ActionName/12157PAR121600">Link Text</a>
                        </td>
                    </tr>

            </tbody></table>

        </div>
    </div>


</div>
                        </div>

jquery的

<script>
    $("a.my-class", "#AssNameSectionLoad").click(function (e) {
        e.preventDefault();
        console.log("a my-class has been clicked");
    });
</script>

1 个答案:

答案 0 :(得分:1)

只要您有jquery选择器的入口点,就可以使用.click函数。 我们假设$('.clickable')包含$("#AssNameSectionLoad")元素(您可能会在局部视图中生成或其他)。 然后,您可以使用$('.clickable', '#AssNameSectionLoad').click(function(){...})来处理行为。

基本概念是你的jquery将查看最终的html,而不是你所放置的视图中的html。

编辑:

要选择input元素的id,可以使用此jquery:

$("a.my-class", "#AssNameSectionLoad").click(function (e) {
    e.preventDefault();
    var id = $(this).parents('tr').prev('input').attr('id');
    alert("a my-class has been clicked id="+id);
});

这里有jsfiddle代码。