我有这个帮助代码
@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"> </span>
}
else
{
<span style="width:15px; display:inline-block"> </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);
}
答案 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"> </span>
}
else
{
<span style="width:15px; display:inline-block"> </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: {
}
});
});