c# - MVC3 中的 WebGrid 列格式问题

标签 c# asp.net-mvc asp.net-mvc-3 razor webgrid

我一直在尝试更改 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 GridTelerik Grid哪个更好。

关于c# - MVC3 中的 WebGrid 列格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5394791/

相关文章:

c# - UWP 应用程序中的 Async Task.Delay 开销,是否有更好的解决方案?

c# - Winforms:验证数据 GridView 中的单元格时出现问题

c# - 简单地停止异步方法

图像的CSS居中

c# - ASP.NET MVC 3 是否缓存过滤器?

c# - VS2017中的MVC 3错误: The name 'ViewData' does not exist in the current context

wpf - MVVM 模型验证和数据绑定(bind)?

c# - 如何在没有 default.htm 页面的情况下使用 ServiceStack MVC 库

c# - HttpUtility.ParseQueryString 奇怪的行为

asp.net-mvc - 用于 Amazon S3 的基于开源或付费 JavaScript 的文件管理器