2012-08-13 61 views
0

我試圖添加一個ActionLink到webgrid列,但遇到問題。Webgrid中的Html.ActionLink返回空字符串

如果我添加操作鏈接像這樣,它的工作原理,並鏈接到主的UserDetails頁面:

grid.Column(header: "", format: (item) => Html.ActionLink("Details", "UserDetails", "Admin")) 

不過,如果我嘗試在電網項目的用戶傳遞,它返回空字符串。

此:

grid.Column(header: "", format: (item) => Html.ActionLink("Details", "UserDetails", "Admin", new { username = item.user }, null)) 

結果在此:

<a href=""> 

我搜索這個網站,並嘗試了一些變化,但沒有工作過。包括:

grid.Column(header: "", format: @<text>@Html.ActionLink("Details", "UserDetails", "Admin", new { username = (string)item.user }, null)</text>) 

在我的控制,我有:

public ActionResult UserDetails(string username) 
    {  
     return View(); 
    } 

我對這個觀點和網格模型是

List<UserInfo> 

其中的UserInfo具有 「用戶」 和 「activedate」。

我還是新來的MVC,所以我希望有一些我可以忽略的東西。

謝謝。

回答

0

ActionLink使用您的路由來確定它是否可以構建鏈接。如果沒有,它有時不會返回。從反射器(下面),注意htmlHelper.RouteCollection。檢查你的global.asax(也許用你想要構建的URL運行你的網站),以確保你的路由表將路由該Url。

public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName, RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes) 
{ 
    if (string.IsNullOrEmpty(linkText)) 
    { 
     throw new ArgumentException(MvcResources.Common_NullOrEmpty, "linkText"); 
    } 
    return MvcHtmlString.Create(HtmlHelper.GenerateLink(htmlHelper.ViewContext.RequestContext, htmlHelper.RouteCollection, linkText, null, actionName, controllerName, routeValues, htmlAttributes)); 
} 
+0

謝謝,就是這樣。我添加了路線到我的Global.asax,並更正了我爲UserDetails處理模型的方式,並且它工作正常。 – Ento 2012-08-14 13:55:09