我一直在尝试更改 WebGrid 中单个列的格式,但没有成功。所述专栏是这样的:
grid.Column(
columnName: "EmailAddress",
header: "Email Address",
format:(item) => Html.EmailLink(item.EmailAddress, item.EmailAddress, ""),
canSort: false
),
错误是:
The best overloaded method match for 'System.Web.Helpers.WebGrid.Column(string, string, System.Func, string, bool)' has some invalid arguments
我很困惑,因为方法签名匹配。此外,如果我将列更改为以下内容,则它可以正常工作:
grid.Column(
columnName: "EmailAddress",
header: "Email Address",
format:(item) => new HtmlString(String.Format("<a href=\"mailto:{0}\" class=\"{2}\">{1}</a>", item.EmailAddress, item.EmailAddress, "")),
canSort: false
),
作为引用,EmailLink
是一个非常基本的 HtmlHelper
扩展方法:
public static IHtmlString EmailLink(this HtmlHelper helper, string emailAddress, string linkText, string linkClass) {
return new HtmlString(String.Format("<a href=\"mailto:{0}\" class=\"{2}\">{1}</a>", emailAddress, linkText, linkClass));
}
谁能告诉我这是什么问题,我该如何解决?
最佳答案
这是由于 WebGrid 的丑陋和所有这些动态废话。你需要类型转换:
grid.Column(
columnName: "EmailAddress",
header: "Email Address",
format: item => Html.EmailLink(
(string)item.EmailAddress,
(string)item.EmailAddress,
""
),
canSort: false
)
话虽如此,请不要犹豫结帐MvcContrib Grid或 Telerik Grid哪个更好。
关于c# - MVC3 中的 WebGrid 列格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5394791/