使用jQuery onclick将数据传递到局部视图

时间:2014-05-07 04:35:22

标签: javascript jquery asp.net-mvc jquery-ui

我有一个名为Index的视图,其中包含一个链接列表,每个链接都有一个ID。当单击其中一个链接时,我想要一个jQueryUI对话框打开并显示该ID。 (对话框最终会有一个HTML表单,但为了简单起见,我们先打印链接ID。)

到目前为止,我试图使对话框的内容成为局部视图(因为最终会很复杂)。我的索引视图如下所示:

// Index
<script>
    $(function() {
        $('#dialog-wrapper').dialog({
            width: 380,
            height: 270,
            modal: true
        });

        $('.action-link').click(function() {
            $('#dialog-wrapper').dialog("open");
        });
    })
</script>

<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Link.Name)
        </th>
        <th></th>
    </tr>

    @foreach (UserLink userLink in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => userLink.Link.Name)
            </td>
            <td>
                <a href="#" class="action-link">click here</a>
            </td>
        </tr>
    }
</table>
<div id="dialog-wrapper">
    @Html.Partial("_Dialog")
</div>

所以问题是,如何将点击链接的ID传递给局部视图?我知道我可以在@Html.Partial调用中添加另一个参数,但是如何传递与点击的链接相对应的ID?

2 个答案:

答案 0 :(得分:0)

您可能会考虑诸如

之类的内容
// Index
<script>
    $(function() {
        $('#dialog-wrapper').dialog({
            width: 380,
            height: 270,
            modal: true
        });

        $('.action-link').click(function(e) {
            e.preventDefault(); //stop the hyperlink from trying to navigate
            var theId = $(this).attr("data-linkid");
            $('#dialog-wrapper').dialog("open", theId);
        });
    })
</script>

<table>
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Link.Name)
        </th>
        <th></th>
    </tr>

    @foreach (UserLink userLink in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => userLink.Link.Name)
            </td>
            <td>
                <a href="#" class="action-link" data-linkid="@Html.Raw(userLink.Link.Id)">click here</a>
            </td>
        </tr>
    }

这可以写下你的&#34; id&#34;到超链接的伪属性,然后在你的动作链接点击方法中使用jQuery作为属性访问。

答案 1 :(得分:0)

这不是你需要的,但它确实有助于你猜测,它显示了特定网格行的ID,所以在你的情况下使用相同的按钮来获取ID,检查这个小提琴(复制此链接)

// jsfiddle.net/m8fsv/23 /