MVC对话框-从动作链接中获取Id值

本文关键字:获取 Id 链接 对话框 MVC | 更新日期: 2023-09-27 18:11:22

在我的应用程序中,我有一些表数据看起来像这样:

<table>
    <tr>
        <th>Actions</th>
        <th>Text</th>
    </tr>
    @foreach( var item in Model.Items ) {
    <tr>
        <td>
            @Html.ActionLink("Edit", "Edit", "Items", new { @class = "edit-item-link", id = "edit-item-" + item.Id })
            @Html.ActionLink("Delete", "Delete", "Items", new { @class = "delete-item-link", id = "delete-item-" + item.Id })
        </td>
        <td>@item.Text</td>
    </tr>
    }
</table>

视图将创建如下操作链接:

<a href="/Items/Edit/1" class="edit-item-link" id="edit-item-1">Edit</a>

然后我使用jquery重写动作:

$('.edit-item-link').live('click', function(e) {
    e.preventDefault();
    $.ajax({
        type: 'POST',
        url: ''
        dataType: 'json'
    });
});

当我将URL传递给ajax调用时,我想使用以下URL: /Items/GetItemJson/1

我怎么能得到从url的id值,而不必使用正则表达式?

我不想改变动作链接中的url,因为我将以另一种方式使用它

MVC对话框-从动作链接中获取Id值

最简单的方法是使用data-*属性

@Html.ActionLink("Edit", "Edit", "Items", new { @class = "edit-item-link", data_id=item.Id,  id = "edit-item-" + item.Id })

应该呈现以下内容:

<a href="/Items/Edit/1" class="edit-item-link" id="edit-item-1" data-id="1">Edit</a>

然后在jQuery中你可以使用.data()

$('.edit-item-link').live('click', function(e) {
    e.preventDefault();
    var theId = $(this).data("id");
    $.ajax({
        type: 'POST',
        url: ''
        dataType: 'json'
    });
});

使用您现有的标记,您可以从id:

var currentId = $(this).attr('id');
var id = currentId.substring(10);