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

これがビジネスロジックです。このチェックをビューに入れません。

コントローラーでチェックを実行し、ビューモデルのブール値パラメーターを設定することを 1 つ改善します。

さらに良いのは、コントローラーが照会できるある種のビジネス層でチェックを実行することです。

ビューに関しては、編集オプションを表示したい状況が他にもあるかもしれません (例えば、ユーザーが管理者である場合など)。ビューをダムのままにしておくことで、再利用性を最大化できます:

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