如何将模型中的值传递给javascript

时间:2016-09-18 11:47:59

标签: javascript asp.net-mvc razor

剃须刀里有foreach

  <ul>
        @foreach (var node in Model)
        {
            var par = node.Id;
            <li onclick="GetSubMenu(@node.Id)" id="@node.Id">
                @node.Title
            </li>
        }
    </ul>

在onclick中我在:

中调用了方法
  function GetSubMenu(parentId) {
    debugger;
    $.ajax({
        type: "Get",
        url: "/Menu/GetSubMenu",
        data: { pageNumber: parentId },
        contentType: "application/json; charset=utf-8",
        dataType: "json",

    }).done(function (result) {

    });
}

但是当我点击<li>时,GetSubMenu无法触发,问题是什么?

1 个答案:

答案 0 :(得分:0)

尝试使用数据属性。

  <ul>
        @foreach (var node in Model)
        {
            <li id="nodeID_"+@node.Id data-nodeid=@node.Id onclick="GetSubMenu(this)" >
                @node.Title
            </li>
        }
    </ul>

并以javascript格式获取数据。

function GetSubMenu(e) {
    var parentId = obj.getAttribute('data-nodeid');
    $.ajax({
        type: "Get",
        url: "/Menu/GetSubMenu",
        data: { pageNumber: parentId },
        contentType: "application/json; charset=utf-8",
        dataType: "json",

    }).done(function (result) {

    });
}

您也可以使用数据集

function GetSubMenu(e) {
        var parentId = e.dataset.nodeid;
        $.ajax({
            type: "Get",
            url: "/Menu/GetSubMenu",
            data: { pageNumber: parentId },
            contentType: "application/json; charset=utf-8",
            dataType: "json",

        }).done(function (result) {

        });
    }