我正在从搜索中检索社区列表。如果当前用户尚未加入社区,我想为加入添加按钮;如果当前用户已加入该社区,我想添加保留。我已将isMember()
函数创建为
public bool IsMember(string UserID, int CommunityID)
{
var Membership = db.Users.Include(x => x.CommunityUsers)
.Where(s => s.Id.Equals(UserID))
.Count();
if (Membership > 0)
return true;
else
return false;
}
但我如何在搜索功能中使用它?我需要在此函数中传递当前的UserID,但我无法执行此操作。这是我的搜索功能。
public ActionResult SearchCommunity(string searchString)
{
if (!String.IsNullOrEmpty(searchString))
{
var UseriD = db.Users.Where(u => u.UserName == User.Identity.Name)
.Select(u => u.Id);
ViewBag.communityQuery = db.Communities.Include(x => x.CommunityUsers)
.Where(s => s.CommunityName.Contains(searchString))
.ToList();
ViewBag.Membership = IsMember(UseriD, ViewBag.communityQuery).ToList();
return View();
}
答案 0 :(得分:1)
此代码将返回IEnumerable:
var UseriD = db.Users.Where(u => u.UserName == User.Identity.Name)
.Select(u => u.Id);
尝试使用:
var UseriD = db.Users.FirstOrDefault(u => u.UserName == User.Identity.Name);
答案 1 :(得分:0)
您可以尝试以下代码:
var userId=User.Identity.GetUserId();
答案 2 :(得分:0)
首先需要获取当前的http上下文,然后才能获得用户:
var ctx = HttpContext.Current;
ctx.User.Identity.GetUserId();
如果您在MvcController
,则可以使用User
属性:
User.Identity.GetUserId();