检查db并返回结果

时间:2013-03-10 12:25:26

标签: asp.net

我只是想检查数据库以查看用户是否是与其他用户的朋友

控制器中的

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

如果我可以传递正确的参数

,这将有效

我怎么能从我有数据的视图中使用它。我知道它不是很好的内容,例如

IsFriend(User.Id,Model.Userid)

model.userid是朋友检查 userid是用户登录的ID

是否可以从视图中执行此操作?

使用razor cshmtl

1 个答案:

答案 0 :(得分: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>
}