列中的MVC3 WebGrid自定义文本

时间:2011-08-01 04:48:45

标签: asp.net-mvc-3 webgrid razor

我正在使用VB.NET中的MVC3开发一个Web应用程序。

我在使用以下操作链接

在webgrid上设置列时遇到了困难

编辑|细节|删除

@*@Html.ActionLink("Edit", "Edit", New With {.id = currentItem.PrimaryKey}) |
@Html.ActionLink("Details", "Details", New With {.id = currentItem.PrimaryKey}) |
@Html.ActionLink("Delete", "Delete", New With {.id = currentItem.PrimaryKey})*@

我尝试使用下面的语法,但是我收到一个错误,其中未声明item。

grid.Column(header:=“”,format:=(item)=> item.GetSelectLink(“Custom Text”))

如何引用webgrid中的当前行或项目以使其工作?

非常感谢任何帮助。

此致

詹姆斯

2 个答案:

答案 0 :(得分:11)

grid.Column(
columnName:"PrimaryKey", 
header:"Actions",      
format: (item) => 
{
   var links = Html.ActionLink("Edit", "Edit", new {id = item.PrimaryKey}) + " | " +
               Html.ActionLink("Details","Details", new { id = item.PrimaryKey}) +" | "+
               Html.ActionLink("Delete","Delete", new { id = item.PrimaryKey});

   return Html.Raw(links);

}),

呈现以下HTML(格式易读)

<td>
  <a href="/Home/Edit/5">Edit</a> | 
  <a href="/Home/Details/5">Details</a> | 
  <a href="/Home/Delete/5">Delete</a>
</td>

答案 1 :(得分:4)

也可以使用下面的更像正常的方式,所以我更喜欢它:

grid.Column(format: @<text>
                @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.Id })    
     </text>)