Следуя лучшим рекомендациям, существует ли лучший способ показать / скрыть элементы управления, основанные на роли пользователя, или вполне допустимо использовать User.IsInRole () внутри представления?Ответ на в этом посте говорит, что это нарушает разделение интересов.Какие есть альтернативы?
@if(User.IsInRole("Admin"))
{
@Html.ActionLink("Create", "Create", "Games")
}
<table class="table">
<thead class="thead-dark">
<tr>
<th scope="col">Date</th>
<th scope="col">Home</th>
<th scope="col">Away</th>
<th scope="col">Field</th>
<th scope="col">Result</th>
@if (User.IsInRole("Admin"))
{
<th scope="col"></th>
}
</tr>
</thead>
<tbody>
@foreach (var g in Model)
{
<tr>
<th>@g.GameDate</th>
<th>@g.HomeTeam.TeamName</th>
<th>@g.AwayTeam.TeamName</th>
<th><a href="http://maps.google.com/?q=directions to @g.Ballpark.Street @g.Ballpark.City @g.Ballpark.StateId" target="_blank">@g.Ballpark.Name</a></th>
<th>(@g.HomeTeamRuns-@g.AwayTeamRuns) @g.Result</th>
@if (User.IsInRole("Admin"))
{
<th> @Html.ActionLink("Edit", "Edit", new { id = g.GameId })</th>
}
</tr>
}
</tbody>
</table>