2012-06-20 31 views
1

我正在使用Jquery UI選項卡,我嘗試通過ajax加載數據。鏈接以編程方式生成。使用Html.ActionLink生成JQuery UI標籤鏈接

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

不應該必須將href屬性傳遞給ActionLink的htmlAttributes參數嗎? – garfbradaz

+0

@garfbradaz:根據我的理解,'href'值由'Html.ActionLink'生成。請參閱[瞭解HTML助手](http://stephenwalther.com/archive/2009/03/03/chapter-6-understanding-html-helpers.aspx)和[此W3Schools頁面](http://www.w3schools。 com/aspnet/mvc_htmlhelpers.asp) – escist

回答

0

請在下面嘗試。認爲您傳遞路由值參數

@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&amp;D_ID=ViewBag.D_ID&amp;E_ID=ViewBag.E_ID&amp;F_ID=ViewBag.F_ID&amp;G_ID=ViewBag.G_ID&amp;Item_ID=item.ID" id="LinkID" title="item.Name">LinkText</a> 
+0

我需要傳遞routeValues以及htmlAttributes – escist

+0

哪些是您的路由值? – swapneel

+0

href不應該被傳遞。我正在使用Html ActionLink。 – escist

0

我不知道爲什麼它的發生的原因,但我取代Html.ActionLink<a href..>語句設置爲一個div的ID href值,並使用「點擊」功能調用另一個JavaScript函數做了ajax職位。