【发布时间】:2017-10-13 02:43:52
【问题描述】:
我创建了一个使用“无限加载”过程动态生成记录的表格,我的 HTML 代码中有一个按钮,我需要使用它来允许用户将项目添加到他们的收藏夹中 - 所以这是我的 HTML 代码
@model List<PagesAuth.Models.Links.MLink>
@foreach (var I in Model)
{
<tr>
<td class="v-align-top" id="itemcard">
<h4 class="card-title">
@I._title
<small><cite>@I._tp_created.ToString("dd MMM yyyy")</cite> /small>
</h4>
<div class="pull-right" id="options">
<ul class="list-inline text-right" >
@if (I._tp_favourite == 0)
{
<li><button class="btn-link glyphicon glyphicon-heart-empty" onclick="location.href='@Url.RequestContext .Action("_Fav", "Home", "@I._id")'"></button></li>
}
else
{
<li><button class="btn-link glyphicon glyphicon-heart-empty" onclick="location.href='@Url.RequestContext .Action("_UnFav", "Home", "@I._id")'"></button></li>
}
</ul>
</div>
</div>
</td>
</tr>
}
我正在尝试使用“收藏夹”按钮来允许用户将该网站添加到他们的收藏列表中(我对数据库更新等表示满意)
<ul class="list-inline text-right" >
@if (I._tp_favourite == 0)
{
<li><button class="btn-link glyphicon glyphicon-heart-empty" onclick="location.href='@Url.RequestContext .Action("_Fav", "Home", "@I._id")'"></button></li>
}
else
{
<li><button class="btn-link glyphicon glyphicon-heart-empty" onclick="location.href='@Url.RequestContext .Action("_UnFav", "Home", "@I._id")'"></button></li>
}
</ul>
-
我想知道的是如何在用户前端实现这一点 - 就像我认为我应该只在我的控制器中创建一个 PartialView 并使其成为子操作,发送它 ID 并进行 DB 处理
[ChildActionOnly] public ActionResult _Fav(int ID) {//Do DB Processing return PartialView(ID); }
首先以下不起作用
onclick="location.href='@Url.RequestContext .Action("_UnFav", "Home", "@I._id")'"
其次,如果我最终完成了这项工作,它仍然会刷新页面,我不希望这样。
有没有更好的方法来实现这一点
干杯
【问题讨论】:
-
我建议使用 ajax 在按钮单击时发送请求。从那里你可以处理结果。如果成功,执行ui更改以指示
favourite,否则什么也不做。 -
我也环顾四周,人们确实在谈论使用 SignalR,但是对于这个小东西,我不想使用 SignalR。
-
@JohnEphraimTugado 我应该将请求发送到哪里,我的控制器的部分视图或只是一个简单的类,以及 UI 更改将如何在 AJAX 中发生
-
为什么要使用局部视图?你会展示什么?
标签: c# jquery asp.net-mvc razor