我有一个 HomePageViewModel,它采用各种模型并在主页上显示摘要视图。
我想根据下拉列表的结果过滤 Announcements 模型,我将其呈现为无序列表。这是我第一次使用部分视图或类似的东西,在阅读了一些内容后决定使用 HTML.Action 调用,该调用从 Announcement Controller 调用 DisplayAnnouncements。
但是,我不确定如何将列表中单击的参数(下例中的“#”)传递给我的 HTML.Action 方法。
这是主页视图:
<ul class="dropdown-menu">
<li><a href="#">All</a></li>
<li><a href="#">Legal</a></li>
<li><a href="#">Accounting</a></li>
</ul>
@Html.Action("DisplayAnnouncments", "Announcement", new { filter = "All" })
这是我的公告控制器:
public ActionResult DisplayAnnouncments(string filter)
{
return PartialView("_Announcements",
(from a in db.Announcements
where a.Type == filter
select a).Take(4));
}
我的 _Annoucments 部分观点:
<table class="table" style="table-layout: fixed">
@foreach (var item in Model)
{
<tr>
<td style="vertical-align: top; width: 70px">
@item.AnnouncmentDate.ToShortDateString()
</td>
<td>
<strong>@item.Title</strong><br />
@item.Announcment
</td>
</tr>
}
所以重申一下,我有几个问题:
- 如何获取用户单击的列表项以在我的 HTML.Action 中填充适当的过滤器?
- HTML.Action 是这里最好的东西吗?我应该使用别的东西吗?
- 如何只刷新部分视图而不刷新整个页面?
感谢您的帮助,我对此很陌生!
罗比