如何使用Data-id

时间:2016-01-29 20:18:39

标签: javascript jquery asp.net-mvc

这是使用data-id发送控制器ID的li;

 <li><a href="javascript:;" data-toggle="mftapproveClass" data-title="@item.Name" data-url="@Url.Action("AssignParticipantToClass")" data-id="@item.Id , @item.CourseId , @item.ClassId"><i class="fa fa-thumbs-o-up"></i>Kabul Et</a></li>

这里是jsthatı写了myselft将1个id发送给控制器;

$('[data-toggle="mftapproveClass"]').click(function () {

    var id = $(this).data("id");
    var courseId = $(this).data("courseId");
    var classId = $(this).data("classId");
    var url = $(this).data("url") + "/" + id + "/" + courseId + "/" + classId;
    var title = $(this).data("title");

    bootbox.confirm({
        title: "İşlem Onayı",
        message: "<center><strong>" + title + "</strong> İşlemi onaylıyor musunuz?</center>",
        buttons: {
            'cancel': {
                label: 'İptal',
                className: 'btn-default'
            },
            'confirm': {
                label: 'Tamam',
                className: 'btn-danger blue'
            }
        },
        callback: function (result) {
            if (result) {
                $("#preLoader").fadeIn('fast');
                $.post(url, function (json) {
                    if (json.IsComplete) {
                        $("#" + id).remove();
                        BSToastr.show("success", "Başarılı", "İşleminiz Başarıyla Gerçekleştirildi.");
                    }
                    else {
                        BSToastr.show("error", "Hata", "İşleminiz Gerçekleştirilemedi.");
                    }
                    $("#preLoader").fadeOut('fast');
                });
            }
        }
    });


});

我正在使用1个id,但现在我需要3个我正在尝试改变但它不起作用 我正在尝试向控制器发送3个不同的ID但是有1个数据ID它可以工作,但有3个它没有工作。如何发送3 Ids

这是输出;

POST http://localhost:17458/Panel/Course/AssignParticipantToClass/413%20,%208%20,%202/undefined/undefined 404 (Not Found)
send @ jquery-1.10.2.min.js:6x.extend.ajax @ jquery-1.10.2.min.js:6x.(anonymous function) @ jquery-1.10.2.min.js:6bootbox.confirm.callback @ global.js:210a.buttons.confirm.callback @ bootbox.min.js:6e @ bootbox.min.js:6(anonymous function) @ bootbox.min.js:6x.event.dispatch @ jquery-1.10.2.min.js:5v.handle @ jquery-1.10.2.min.js:5

1 个答案:

答案 0 :(得分:1)

您可以将每个属性值添加为data-属性

<a href="#" ... data-id="@item.Id" data-courseid="@item.CourseId" data-ClassId="@item.classid">...</a>

然后使用

在脚本中访问它们
var id = $(this).data("id");
var courseId = $(this).data("courseid");
var classId = $(this).data("classid");

请注意,必须使用全部小写在.data()方法中访问它们。如果您检查data-cOuRseID="someValue"生成的html,您会看到它被转换为小写 - data-courseid="someValue"

除非您为方法创建了特定的路径定义,例如

url: "Panel/Course/AssignParticipantToClass/{id}/{courseId}/{classId}"

然后您需要修改脚本以使用

var url = $(this).data("url"); // don't add the route values

然后在.post()方法中,使用

传递值
$.post(url, { id: id, courseId : courseId, classId: classId }, function (json) {