grid.Column(format:
v =>
@Html.ActionLink(@item.Name, "Details", new { id = item.Id }).ToString() +
(v.State == State.Y
? @Html.ActionLink("Start", "Start", new { id = v.Id })
: (v.State == State.Z)
? @Html.ActionLink("Continue", "Start", new { id = v.Id })
: MvcHtmlString.Create("")).ToString()
)
此解决方案为我提供了编码的HTML,我可以做什么呢?
答案 0 :(得分:0)
此答案基于发现的here
的SO问题我们的想法是使用标签来混合Razor标记和内容。
样品:
<text>
@Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
@Html.ActionLink("Details", "Details", new { id = item.Id })
@if(item.State == State.Y)
{
@: | @Html.ActionLink("Continue", "Start", new { id = item.Id })
}
</text>
答案 1 :(得分:0)
有一个名为Raw()的Razor HtmlHelper可以完全满足您的需要,它可以在不执行HTML编码的情况下输出内容。因此,您可以使用@ Html.Raw(Html.ActionLink(...)+“”+ Html.AmctionLink(...)),您将获得动作链接的HTML,由空格或您正在使用的任何字符组合作为分隔符。
接受的答案是无效的Razor标记,@符号必须后跟“:”,“(”或C#标识符。第一行应该是。我也觉得必须使用这么多的内容标识符(和@ :)使它更容易出错,难以阅读/输入。如果没有更正,请考虑更改正确的答案。