我正在使用Razor
网格系统来显示列表。我想将列作为链接操作。但我的问题是它将字体结尾的链接显示为原始HTML文件。
我的代码是
columns.Add(c => c.Title).Titled("Title").Filterable(true).RenderValueAs(c => Html.ActionLink(c.Title, "Details", new { id = c.Id }));
我还在Format()
的位置使用RenderValueAs()
但结果是一样的。
我已经通过这个链接进行了研究。Link1,Link1,Link1,Link1但是找不到可能的解决方案。
如果没有javascript或任何脚本语言的帮助,我不想解决这个问题。我正在寻找只有剃刀相关的解决方案。谢谢。
答案 0 :(得分:1)
从未使用过这个grid
的东西,只需编写html标签并自行循环,我认为它更有控制力。
在这种情况下,我认为它的RenderValueAs
方法问题,它可能是解码输出
您可以尝试此RenderValueAs(c => {string tag = generate your link tag string; return Html.Raw(tag);})
如果它不起作用,你可以在Filterable()
上编写一个扩展方法,自己生成MvcHtmlString
,它应该有效。
答案 1 :(得分: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我获得了这个策略。