我的ASP.NET MVC3测试应用程序中有以下WebGrid。它显示一个客户列表:
@grid.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt",
columns: grid.Columns
(
grid.Column(format: (item) => Html.ActionLink("Edit", "Details", new { id = item.id })),
grid.Column("Address.CompanyName"),
grid.Column("Address.City")
)
)
这里有趣的部分是我在第一列中添加的Edit-link。我想使用客户帐号,而不是简单的“编辑”-test。然而,这样做会给我带来很多问题。
我试过了:
grid.Column(format: (item) => Html.ActionLink(item.AccountNumber.ToString(), "Details", new { id = item.id })),
然而,似乎有一些事情我不理解它是如何工作的,因为我总是得到这个异常:
CS1502: The best overloaded method match for 'System.Web.Helpers.WebGrid.Column(string, string, System.Func<dynamic,object>, string, bool)' has some invalid arguments
有人能给我解释一下为什么这个不起作用吗?“编辑”和item.AccountNumber.ToString()
(除了拼写)有什么不同?
我应该注意到,当使用“编辑”-text时,这个链接是有效的,并且AccountNumber
是一个长的。
发布于 2012-08-17 17:12:06
如果有人想知道它在VB中应该是什么样子,这里有一个例子:
grid.Column("PersonID", "Admin", Function(modelItem) Html.ActionLink("View", "Details", New With {.id = modelItem.PersonID}))
发布于 2013-02-24 19:43:57
在我的案例中,Derek Beattie的解决方案不起作用。
我用的是这个
grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { id = item.ID }), style: "column-action")
发布于 2015-05-28 22:15:42
我的列是在模型中生成的,其中Html.ActionLink似乎无法访问。因此,我必须创建href并将其作为MvcHtmlString返回。这就是我最终要做的
new WebGridColumn{ColumnName="FileName", Header= "File",
Format = item => new MvcHtmlString("<a href='" + item.FileLink + "'>" + item.FileName +"</a>")
https://stackoverflow.com/questions/6167903
复制相似问题