0

我正在比较,如果当前用户是帖子的所有者或个人资料的所有者,如下所示。

if (Request.IsAuthenticated)
{
      if (Users.IsInRole("Admin") || (Guid)System.Web.Security.Membership.GetUser().ProviderUserKey == Model.UserId)
      {
          @Html.ActionLink("EditProfile", "EditProfile", "UserProfile")
      }
}

这是最好的方法还是有更好的方法来控制这种比较。

4

1 回答 1

3

这是业务逻辑。我不会把这张支票放在视图中。

更好的一步是在控制器中完成检查,然后设置视图模型的布尔参数。

更好的是在控制器可以查询的某种业务层中运行检查。

至于视图,可能还有其他情况需要您显示编辑选项(例如,用户是管理员)。通过保持视图哑铃,您可以最大限度地提高它们的可重用性:

@if(Model.ShowEditLink){
    @Html.ActionLink("EditProfile", "EditProfile", "UserProfile")
}
于 2012-08-03T09:18:07.587 回答