使用Html.ActionLink生成Jquery UI选项卡链接

时间:2012-06-20 11:36:45

标签: jquery asp.net-mvc jquery-ui jquery-ui-tabs actionlink

我正在使用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。

知道为什么会这样吗?

2 个答案:

答案 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&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>

答案 1 :(得分:0)

我不知道它发生的原因,但我将Html.ActionLink替换为<a href..>语句,其中href值设置为div的ID并使用“onclick”函数调用另一个Javascript函数来做ajax帖子。