2016-12-27 21 views
3

我正在使用Razor网格系统来显示列表。我想创建一个列作为链接​​操作。但我的问题是它显示的字体结束链接作为原始HTML文件。 我的代码是如何在使用Razor的MVC中的网格/列内添加链接操作

columns.Add(c => c.Title).Titled("Title").Filterable(true).RenderValueAs(c => Html.ActionLink(c.Title, "Details", new { id = c.Id })); 

有脱颖而出的输出 Output

我也用Format()RenderValueAs()放置但是结果是一样的。 我已经通过这个链接进行了研究。 Link1,Link1,Link1,Link1但是找不到可能的解决方案。 我不想在没有任何JavaScript或任何脚本语言的帮助下解决这个问题。我正在寻找只有剃须刀相关的解决方案。谢谢。

回答

0

可能我有自己的问题的解决方案,我已经检查过它。

而不是使用 columns.Add(c => c.Title).Titled("Title").Filterable(true).RenderValueAs(c=>Html.ActionLink(c.Title, "Details", new { id = c.Id }));

我用

@{ 
    var grid = new WebGrid(Model); 
} 
@grid.GetHtml(
     tableStyle: "webgrid-table", 
     headerStyle: "webgrid-header", 
     footerStyle: "webgrid-footer", 
     alternatingRowStyle: "webgrid-alternating-row", 
     selectedRowStyle: "webgrid-selected-row", 
     rowStyle: "webgrid-row-style", 
     mode: WebGridPagerModes.All, 
     columns: 
      grid.Columns(
      grid.Column(columnName: "Student Name", header: "Name", format: @<text>@item.Name</text>), 
      grid.Column(columnName: "SchoolName", header: "School Name", format: @<text>@item.SchoolName</text>), 
      grid.Column(columnName: "Address", header: "Address", format: @<text>@item.Address</text>), 
      grid.Column(columnName: "City", header: "City", format: @<a>@item.City</a>), 
      grid.Column(columnName: "State", header: "State", format: @<text>@item.State</text>) 
      )) 

在这里,我对城市的连接<a>的。所以我很安静,可以自己定制整个网格。从参考link我得到这个策略。

1

从来没有使用过这个grid的事情,只需写html标签并循环我自己,我认为它更受控制。

在这种情况下,我认为这是RenderValueAs方法的问题,它可能是解码输出。
你可以试试这个RenderValueAs(c => {string tag = generate your link tag string; return Html.Raw(tag);})

,如果它不工作,你可以在Filterable()写一个扩展方法,生成MvcHtmlString自己,它应该工作。

+0

是的。以前我通过在最近和正在进行的项目中循环生成了这张表。但这是一个需要修改的过时项目。所以,要求各不相同。我对这种类型的解决方案并不满意。但是,我必须。 – gdmanandamohon

相关问题