0

私は単にデータベースをチェックして、ユーザーが他のユーザーと友達であるかどうかを確認しようとしています

コントローラーで

    [NonAction]
    public bool IsFriend(int UserId, int id)
    {
            int query = _service.IsFriend(UserId, id);
            if (query > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
    }

正しいパラメーターを渡すことができれば、これは機能します

データがあるビューからこれを使用するにはどうすればよいですか。私はその素晴らしいIDではないことを知っています。

IsFriend(User.Id, Model.Userid)

model.userid はフレンドチェックです userid はサインインしているユーザーの ID です

ビューからこれを行うことは可能ですか?

カミソリ cshmtl の使用

4

1 に答える 1

0

メソッドをより一般的な場所 (ヘルパー クラスの場合もあります) に移動usingし、ビューにステートメントを追加して関数を呼び出すことができます。

@model YourPageViewModel

@using YourProject.HelperNameSpaceName
<div>  
  @foreach(var friend in Model.KnownPeople)
  {
    <p>@friend.Name</p>
    <p>@(IsFriend(friend.ID, Model.UserId)??"is friend":" is not friend")</p>    
  }
</div>

ただし、ビューではなくアクションメソッドでこれを行うことをお勧めします。Action メソッドでチェックを行い、Friend ユーザーのみをビュー モデルの Friends コレクション プロパティに追加するだけです。次に、ビューに表示します。

public ActionMethod Profile(int userId)
{
  var profileViewModel=new ProfileViewModel();
  var knownPeoples=repo.GetAllKnownPeopls(userId);
  foreach(var person in knownPeoples)
  {
    if(IsFriend(person.ID, profileViewModel.CurrentUserID))
      profileViewModel.Friends.Add(person);
  }
  return View(profileViewModel);
}

ビューで、表示コードのみを記述します。

@model ProfileViewModel
@foreach(var friend in Model.Friends)
{
  <p>@friend.Name</p>
}
于 2013-03-10T12:44:51.937 に答える