HTML未在Razor if内部呈现

本文关键字:内部 if 未在 Razor HTML | 更新日期: 2023-09-27 18:21:28

我在一个视图文件中有类似的东西

 @Html.ActionLink("Details", "Details", new { id=item.RuleId }) |                     
  @Html.ActionLink("Edit", "Edit", new { id = item.RuleId }) |
  @Html.ActionLink("Delete", "Delete", new { id = item.RuleId })

这是有效的,但当我把它改成类似的东西时

 @Html.ActionLink("Details", "Details", new { id=item.RuleId }) |
     @if( something )
  {                
  Html.ActionLink("Edit", "Edit", new { id = item.RuleId });
  Html.ActionLink("Delete", "Delete", new { id = item.RuleId });
  }     

它停止显示第二项和第三项(尽管正在进入分支)。

有什么想法吗?

HTML未在Razor if内部呈现

Html.ActionLink返回一个包含<a>标记的IHtmlString对象
它自己什么都不做。

您的代码将忽略此结果,因此不会发生任何事情。

您需要使用@字符将结果打印到页面上。

用以下代码替换您的代码:

@Html.ActionLink("Details", "Details", new { id=item.RuleId }) |
@if( something )
{                
  @Html.ActionLink("Edit", "Edit", new { id = item.RuleId })
  @Html.ActionLink("Delete", "Delete", new { id = item.RuleId })
}