【发布时间】:2016-02-16 05:15:14
【问题描述】:
我有一个剃刀视图,其中模型是产品的 IEnumerable,所以我只是在模型上使用 foreach 循环列出视图中的所有产品。除了每个产品,您可以在下面看到我正在显示它有多少 ThumbsUps 的计数。我要完成的最后一件事是,当他们单击“Give Thumbs Up”链接时,我想将 ProductThumbsUp 记录添加到当前登录用户的数据库中。如果用户已经竖起大拇指并再次点击它,我想从产品中删除他们的 ProductThumbsUp。
我正在使用 EntityFramework 7 和 MVC6。我有两个表:Product 和 ProductThumbsUp。
我想知道当当前登录的用户点击使用 MVC 的链接时,我应该如何为他们添加 ProductThumbsUp 记录。我假设这样的事情绝对应该是一个 AJAX 帖子。但是我只是想将 ProductId 发送到 AJAX 帖子吗?然后在我的控制器中创建一个新的 ProductThumbsUp 并设置它的 ProductId。然后将新创建的 ProductThumbsUp 对象和当前登录的用户都发送到我的存储库层进行保存。
我想知道是否有更好的方法来做到这一点,因为我的模型中的每个帖子都已经附有一个 ThumbsUps 列表。有没有更好的方法可以做到这一点?
这是我的剃刀视图的设置方式:
@model IEnumerable<Product>
@foreach (var product in Model)
{
<h2>@product.Name</h2>
<div>@product.Description</div>
<a href="#" class="lnkViewLikes"># of Thumbs Ups Given:<span class="badge">@product.ThumbsUps.Count()</span></a>
<a href="#" class="lnkThumbsUp">Give Thumbs Up</a>
}
这是我的产品模型的样子:
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public ICollection<ProductThumbsUp> ThumbsUps { get; set; }
【问题讨论】:
-
你的建议听起来是正确的方法。
标签: c# ajax asp.net-mvc entity-framework razor