如何将WebGrid列的int值转换为字符串?

Dhw*_*ani 1 c# asp.net-mvc lambda webgrid

WebGrid用来显示模型的数据.我希望ID列应该是超链接.因此,当任何人点击ID时,它的相应页面将被打开.我试过以下代码,但是我收到了错误: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot convert type 'int' to 'string'

码:

grid.Column(columnName: "ID", header: "ID", canSort: true, format: item => Html.ActionLink((string)item.ID, "../CRM/DetailsRequest", new { ID = item.ID })),....
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 5

看起来ID属性是一个整数,因此您无法将其强制转换为字符串.首先尝试将其转换为整数:

grid.Column(
    columnName: "ID", 
    header: "ID", 
    canSort: true, 
    format: item => Html.ActionLink(
        ((int)item.ID).ToString(), 
        "DetailsRequest", 
        "CRM", 
        new { ID = item.ID }, 
        null
    )
)
Run Code Online (Sandbox Code Playgroud)

或者,如果在视图模型中,您有另一个字符串属性,您希望将其用作锚文本:

grid.Column(
    columnName: "ID", 
    header: "ID", 
    canSort: true, 
    format: item => Html.ActionLink(
        (string)item.Name, 
        "DetailsRequest", 
        "CRM", 
        new { ID = item.ID }, 
        null
    )
)
Run Code Online (Sandbox Code Playgroud)