使用javascript从引导表中检索id

使用javascript从引导表中检索id,javascript,jquery,twitter-bootstrap,asp.net-mvc-5,Javascript,Jquery,Twitter Bootstrap,Asp.net Mvc 5,我将MVC5用于我的web应用程序项目。我创建了一个由MVC自己完成的表的内置列表。现在我想获取我单击的数据的id。MVC本身创建了一个编辑/删除选项,但我希望整行都是可点击的,这样当我按下其中一行时,我就可以链接到该id的详细信息。 问题是,当我单击该行时,我根本无法将id传递给javascript。我试着搜索它,发现了类似这样的变量id=$('.clickableRow').attr(“数据id”); 但它只显示未定义的值 这里是我的index.cshtml源代码 @foreach (var

我将MVC5用于我的web应用程序项目。我创建了一个由MVC自己完成的表的内置列表。现在我想获取我单击的数据的id。MVC本身创建了一个编辑/删除选项,但我希望整行都是可点击的,这样当我按下其中一行时,我就可以链接到该id的详细信息。 问题是,当我单击该行时,我根本无法将id传递给javascript。我试着搜索它,发现了类似这样的变量id=$('.clickableRow').attr(“数据id”); 但它只显示未定义的值

这里是我的index.cshtml源代码

@foreach (var item in Model){
<tr id="clickableRow(this)">
    <td>
        @Html.DisplayFor(modelItem => item.SentBy)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.SentTo)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Subject)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.SentDate)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Message)
    </td>
    <td>

        @Html.ActionLink("Details", "Details", new { id = item.MailId }) |
        @Html.ActionLink("Delete", "Delete", new { id = item.MailId })
    </td>
</tr>
@foreach(模型中的变量项){
@DisplayFor(modeleItem=>item.SentBy)
@DisplayFor(modeleItem=>item.SentTo)
@DisplayFor(modelItem=>item.Subject)
@DisplayFor(modelItem=>item.SentDate)
@DisplayFor(modelItem=>item.Message)
@ActionLink(“详细信息”,“详细信息”,新的{id=item.MailId})|
@ActionLink(“删除”,“删除”,新的{id=item.MailId})
}

这里是我尝试使用的javascript:

<script type="text/javascript">
$(document).ready(function () {
    $('.clickableRow').on('click', function (e) {
        var id = $(this).closest('tr').find('td.SentBy').html();
        //var id = $('.clickableRow').attr("data-id");
        alert(id);
        //window.location = "Mails/Details/" + id;
        // Or, we can grab the HREF from the first anchor:
        //window.location = $('a:first', this).attr('href');
    });
});

$(文档).ready(函数(){
$('.clickableRow')。关于('click',函数(e){
var id=$(this.nexist('tr').find('td.SentBy').html();
//变量id=$('.clickableRow').attr(“数据id”);
警报(id);
//window.location=“邮件/详细信息/”+id;
//或者,我们可以从第一个锚点获取HREF:
//window.location=$('a:first',this.attr('href');
});
});

提前感谢你的帮助

您的
似乎(错误地)假定
id
属性是类似于
onclick
的事件。此外,您正试图将id作为
数据
属性访问,这将要求它以
数据-
作为前缀,即
数据id
,我不确定
.clickableRow
类来自何处,因为没有任何类被分配到示例行

我对.NET一无所知,但您应该将实际记录ID放入
数据ID
属性中:


在JavaScript中,您试图访问
元素,在HTML中,您定义了一个
ID
属性

尝试将您的JavaScript更改为

$(document).ready(function () {
    $('#clickableRow').on('click', function () {
        var $this = $(this);
        var id=$this.attr("data-id");
        alert(id);
    });
});

发布您生成的htmlHave看看这个,它不是特定于.NET的,但是您可以使用相同的概念并实现相同的!!
$(document).ready(function () {
    $('#clickableRow').on('click', function () {
        var $this = $(this);
        var id=$this.attr("data-id");
        alert(id);
    });
});