我正在使用Jquery UI标签,我试图通过ajax加载数据。链接以编程方式生成。
string LinkID = "";
<ul>
@foreach (MyItem item in Model.ItemList)
{
<li>
LinkID = "subcat" + ViewBag.F_ID + "-tabs-item" + item.ID + "-link";
@Html.ActionLink( item.Name, //Link Text
"GetItem", //Action Name
"Items", //Controller Name
//Route Values
new { C_ID = ViewBag.C_ID, D_ID = ViewBag.D_ID, E_ID = ViewBag.E_ID, F_ID = ViewBag.F_ID, G_ID = ViewBag.G_ID, Item_ID = item.ID },
//HTML Attributes
new { id = LinkID, @class = "ItemLoadViaAjax", title = item.Name })
</li>
}
</ul>
生成的锚元素:
<a class="ItemLoadViaAjax"
href="#Cadbury_Eclairs"
id="subcat11-tabs-item9-link"
title="Cadbury Eclairs">
Cadbury Eclairs
</a>
href
的值与title
的值相同,而不是从ActionLink生成的URL。
知道为什么会这样吗?
答案 0 :(得分:0)
请尝试以下操作。认为你传递的是routevalues参数的值
@Html.ActionLink(linkText: item.Name, actionName: "GetItem",
controllerName: "Items",
RouteValues: new { C_ID = ViewBag.C_ID, D_ID = ViewBag.D_ID, E_ID = ViewBag.E_ID, F_ID = ViewBag.F_ID, G_ID = ViewBag.G_ID, Item_ID = item.ID }
htmlAttributes: new { id = LinkID, @class = "ItemLoadViaAjax", title = item.Name },
routeValues: null)
使用ASPX视图。
<a class="ItemLoadViaAjax" href="/TRS/ControllerName/ActionName.aspx?C_ID=ViewBag.C_ID&D_ID=ViewBag.D_ID&E_ID=ViewBag.E_ID&F_ID=ViewBag.F_ID&G_ID=ViewBag.G_ID&Item_ID=item.ID" id="LinkID" title="item.Name">LinkText</a>
答案 1 :(得分:0)
我不知道它发生的原因,但我将Html.ActionLink
替换为<a href..>
语句,其中href
值设置为div的ID并使用“onclick”函数调用另一个Javascript函数来做ajax帖子。