将var从Razor MVC传递给JQuery

时间:2013-01-08 09:28:47

标签: c# jquery razor asp.net-mvc-4

我有一个项目列表,所有这些项目都会有一个“点击此处获取更多信息”链接。通过此链接,我想打开一个模态弹出窗口并显示其中的详细信息。我的问题是,如何将id传递给相关的模态弹出窗口。

目前我有以下代码: -

列表中的每个项目都包含以下内容: -

<a href="#" class="modal_link" data-id="@item.ExpId">Click here for more info.</a>

在我的jquery中我有以下内容: -

    var id = $(".modal_link").attr("data-id");
alert(id);

$(document).ready(function () {
    $('.modal_block').click(function (e) {
        $('#tn_select').empty();
        $('.modal_part').hide();
    });

    $('.modal_link').click(function (e) {
        $('.modal_part').show();
        var context = $('#tn_select').load('/Experience/ShowExpDetail?id=' + id, function () {
            initSelect(context);
        });
        e.preventDefault();
        return false;
    });

});

但是id始终未定义。

如何传递此var?

感谢您的帮助和时间

3 个答案:

答案 0 :(得分:2)

由于您希望在点击时提供每个链接的id,因此您需要使用自this获得的自引用,如下所示:

$('.modal_link').on('click', function (e) {
    e.preventDefault();
    $('.modal_part').show();

    var id = $(this).attr('data-id');
    var context = $('#tn_select').load('/Experience/ShowExpDetail?id=' + id, function () {
        initSelect(context);
    });
});

您的load()电话对我来说并不完全正确,但我必须看到脚本的其余部分才能知道......

答案 1 :(得分:0)

移动这些线条 var id = $(".modal_link").attr("data-id"); alert(id);$(document).ready(function () {

答案 2 :(得分:0)

 $('.modal_link').click(function (e) {

 alert($(this).attr('id'));
        $('.modal_part').show();
        var context = $('#tn_select').load('/Experience/ShowExpDetail?id=' + id, function () {
            initSelect(context);
        });
        e.preventDefault();
        return false;
    });