0

It seems I cannot use vertical line in the asp net core 3.1.3 MVC if it contains "User.IsInRole("Admin")"

For example.

@if (User.IsInRole("Admin"))
{
    <a asp-action="Edit" asp-route-id="@item.Id">Edit</a> |
    <a asp-action="Details" asp-route-id="@item.Id">Details</a> |
    <a asp-action="Delete" asp-route-id="@item.Id">Delete</a> |
}

The first error message is

Error   CS1525  Invalid expression term '|' 

Any ideas how should I fix it?

Bangyou
  • 9,462
  • 16
  • 62
  • 94

1 Answers1

1

You have two ways to implement "|" in the @module:

1.Use ASCII character(&#124;) instead of "|":

@if (User.IsInRole("Admin"))
{
    <a asp-action="Edit" asp-route-id="@item.Id">Edit</a> &#124;
    <a asp-action="Details" asp-route-id="@item.Id">Details</a>  &#124;
    <a asp-action="Delete" asp-route-id="@item.Id">Delete</a> &#124;
}

2.Add '@' character before "|" with brackets:

@if (User.IsInRole("Admin"))
{
    <a asp-action="Edit" asp-route-id="@item.Id">Edit</a> @("|")
    <a asp-action="Details" asp-route-id="@item.Id">Details</a>  @("|")
    <a asp-action="Delete" asp-route-id="@item.Id">Delete</a>@("|")
}

You can also refer to this.

LouraQ
  • 6,443
  • 2
  • 6
  • 16