简体   繁体   English

MVC3中的WebGrid列格式问题

[英]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 GridTelerik Grid

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM