我正在尝试将ActionLink添加到webgrid列,但遇到了问题。
如果我像这样添加动作链接,它可以工作并链接到主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具有“user”和“activedate”。
我还是MVC的新手,所以我希望我有一些愚蠢的东西。
感谢。
答案 0 :(得分:0)
ActionLink使用您的路由来确定它是否可以构建链接。如果没有,它有时什么也不返回。从Reflector(下面),注意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));
}