我这里有这个小提琴。它演示了悬停并出现一个包含信息的框。
我想要实现的是,当“查看详细信息”悬停时,它会触发 MVC 操作Details(guid Id)
,并且该操作的结果会呈现在框中。
我不完全确定如何做到这一点。我会假设 AJAX 表单是在悬停时提交的,所以这需要由 JS 来完成(我真的不知道如何用 JS 来做 AJAX)。然后 div 将以新渲染的形式显示@Html.Action("Detail", "Stuff", new { Id = @item.Model.Id })
我接近了吗?
视图将是这样的
<table>
<thead>
<tr>
<td>Name</td>
<td>E-mail</td>
</tr>
</thead>
<tbody>
@foreach (var item in Model.ItemList)
{
<tr>
<td>@Html.DisplayFor(model => item.Name)</td>
<td>@Html.DisplayFor(model => item.Email)</td>
<td>@using(Ajax.BeginForm(ajaxOpts))
{
<span>Hover for Details</span>
@Html.HiddenFor(model => item.Id)
}
</td>
</tr>
}
</tbody>
</table>
行动纯粹是:
[ChildActionOnly]
public ActionResult Detail(Guid id)
{
var item = _repository.Stuff.FirstOrDefualt(x => x.Id.Equals(id));
return View(item);
}
所以规范是:
- 当“详细信息悬停”已悬停以显示一个框,其中光标显示最近从数据库获取的详细信息
我已经在脑海中写下了这一切,所以不要仔细检查它的准确性,它纯粹是为了展示一个想法,我不是在寻找我的代码中的错误。我正在寻找具有有效工作示例的想法。谢谢。