我想显示当前登录用户的事件,该
怎么办?
这是我的代码:
这是我的模型
public Event()
{
Venues = new HashSet<Venue>();
Ratings = new HashSet<Rating>();
}
public int EventID { get; set; }
[Required]
[StringLength(50)]
[Display(Name="Event Name")]
public string EventName { get; set; }
[Required]
[StringLength(100)]
[Display(Name = "Event Description")]
public string EventDesc { get; set; }
[Column(TypeName = "image")]
[Display(Name = "Event Logo")]
public byte[] EventLogo { get; set; }
[StringLength(50)]
[Display(Name = "Event Location")]
public string EventLocation { get; set; }
public virtual AspNetUser AspNetUser { get; set; }
这是我的控制器:
public ActionResult ManageEvent()
{
if (!User.Identity.IsAuthenticated)
{
return RedirectToAction("Login", "Account");
}
var events = db.Events;
return View(events.ToList());
}
这是我的观点:
@model IEnumerable<Project_Touchee.Models.Event>
@{
ViewBag.Title = "Manage Events";
}
<h2>Manage All Events</h2>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.EventLogo)
</th>
<th>
@Html.DisplayNameFor(model => model.EventName)
</th>
<th>
@Html.DisplayNameFor(model => model.EventDesc)
</th>
<th>
@Html.DisplayNameFor(model => model.EventLocation)
</th>
@foreach (var item in Model)
{
<tr>
<td>
@{
byte[] eventt = item.EventLogo;
string imageSrc = null;
if (item.EventLogo != null)
{
MemoryStream ms = new MemoryStream();
ms.Write(eventt, 0, eventt.Length);
string imageBase64 = Convert.ToBase64String(ms.ToArray());
imageSrc = string.Format("data:image/index;base64,{0}", imageBase64);
}
}
<img src="@imageSrc" width="100" height="100" />
</td>
<td>
@Html.DisplayFor(modelItem => item.EventName)
</td>
<td>
@Html.DisplayFor(modelItem => item.EventDesc)
</td>
<td>
@Html.DisplayFor(modelItem => item.EventLocation)
</td>
这应该仅显示当前用户创建的事件。
首先,您需要获取当前用户的副本:
var user = UserManager.FindById(User.Identity.GetUserId());
然后,您需要使用以下查询事件:
var events = db.Events.Where(m => m.AspNetUser == user);
您可以通过AspNetUser
为事件添加导航属性来简化生活:
public virtual ICollection<Event> Events { get; set; }
然后,您可以使用: user.Events
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句