[英]WebGrid Column Format Issue in MVC3
I've been trying to change the format of a single column in a WebGrid without much success. 我一直试图改变WebGrid中单个列的格式而没有太大的成功。 Said column is this:
所说的专栏是这样的:
grid.Column(
columnName: "EmailAddress",
header: "Email Address",
format:(item) => Html.EmailLink(item.EmailAddress, item.EmailAddress, ""),
canSort: false
),
The error is: 错误是:
The best overloaded method match for 'System.Web.Helpers.WebGrid.Column(string, string, System.Func, string, bool)' has some invalid arguments
'System.Web.Helpers.WebGrid.Column(string,string,System.Func,string,bool)'的最佳重载方法匹配有一些无效的参数
I am confused as the method signature matches. 我很困惑,因为方法签名匹配。 Also, if I change the column to the below then it works without any errors:
此外,如果我将列更改为下面,那么它的工作没有任何错误:
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
),
For reference, EmailLink
is a very basic HtmlHelper
extension method: 作为参考,
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));
}
Can anyone tell me what the issue here is, and how I can solve it? 谁能告诉我这里的问题是什么,以及我如何解决它?
This is due to the ugliness of WebGrid and all this dynamic crap. 这是由于WebGrid的丑陋和所有这些动态垃圾。 You need a cast:
你需要一个演员:
grid.Column(
columnName: "EmailAddress",
header: "Email Address",
format: item => Html.EmailLink(
(string)item.EmailAddress,
(string)item.EmailAddress,
""
),
canSort: false
)
This being said don't hesitate to checkout MvcContrib Grid or the Telerik Grid which are far better. 据说,不要犹豫,检查出更好的MvcContrib Grid或Telerik Grid 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.