将值从视图传递到控制器

时间:2015-05-26 06:54:40

标签: asp.net asp.net-mvc asp.net-mvc-5

我有这个帮助代码

@helper GetTreeView(List<MvcTreeview.Models.Category> siteMenu, int     parentID)
{
foreach (var i in siteMenu.Where(a => a.ParentID.Equals(parentID)))
{
    <li>
        @{var submenu = siteMenu.Where(a => a.ParentID.Equals(i.ID)).Count();}
        @if (submenu > 0)
        {
            <span class="collapse collapsible">&nbsp;</span>
        }
        else
        {
            <span style="width:15px; display:inline-block">&nbsp;</span>
        }
        <span id="Category">
            <a href="#" id="@i.ID">@i.CategoryName</a>
            <b></b>
        </span>
        @if (submenu > 0)
        {
            <ul>
                @Treeview.GetTreeView(siteMenu, i.ID)
                @* Recursive  Call for Populate Sub items here*@
            </ul>
        }
    </li>
}
}

我希望将id传递给控制器​​的Action方法。 如何将视图中的id传递给控制器​​中的操作方法。

$('#Category').click(function () {

    url = '@Url.Action("Index", "TestDetails");
    $.ajax({
        url: url,
        type: 'POST',
        success: function (returnData) {

        },
        error: {
        }
    });
});

如何在第二段代码中获取id。

使用该id我必须使用控制器中的操作方法获取一些细节。

行动方法

public ActionResult Index(int id)
{
    TestDetail detail = new TestDetail();
    detail = db.TestDetails.Single(a => a.ID == id);


    return View(detail);
}

2 个答案:

答案 0 :(得分:2)

只需将“this”传递给你的onclick函数

<span class="Category">
            <a href="#" id="@i.ID" onClick="CategoryClick(this.id)">@i.CategoryName</a>
            <b></b>
</span>

Javascript:(已编辑)

<script type="text/javascript">
    function CategoryClick(clicked_id)
    {
        alert(clicked_id);
        url = '@Url.Action("TestDetails", "Index")'; //Url.Action(actionName, ControllerName)
        $.ajax({
            url: url,
            data: {id: clicked_id}, //json format
            success: function (returnData) {

            },
            error: {
            }
        });
    }
</script>

答案 1 :(得分:1)

按以下方式编辑助手:

@helper GetTreeView(List<MvcTreeview.Models.Category> siteMenu, int     parentID)
{
foreach (var i in siteMenu.Where(a => a.ParentID.Equals(parentID)))
{
    <li>
        @{var submenu = siteMenu.Where(a => a.ParentID.Equals(i.ID)).Count();}
        @if (submenu > 0)
        {
            <span class="collapse collapsible">&nbsp;</span>
        }
        else
        {
            <span style="width:15px; display:inline-block">&nbsp;</span>
        }
        <span >
            <a class="Category" href="#" id="@i.ID">@i.CategoryName</a>
            <b></b>
        </span>
        @if (submenu > 0)
        {
            <ul>
                @Treeview.GetTreeView(siteMenu, i.ID)
                @* Recursive  Call for Populate Sub items here*@
            </ul>
        }
    </li>
}
}

和ajax电话:

$('.Category').click(function () {

        url = '@Url.Action("Index", "TestDetails")';
        $.ajax({
            url: url,
            type: 'POST',
            data: "{'id': " + $(this).attr("id") + "}",
            success: function (returnData) {

            },
            error: {
            }
        });
    });