【发布时间】:2015-06-19 04:30:16
【问题描述】:
我有一个 MVC 剃须刀页面,其中有两个 HTML 操作链接,它们可以单独工作,但不能一起工作。在研究 jQuery 选项之前,我想确保我没有遗漏一些明显的东西。我希望我可以通过向相关的 html.actionlink 添加第二个参数来保持简单。
我正在从 Web Pages 过渡到 MVC,因此我通过查看 Microsoft ASP.NET 学习资源和其他 SO 帖子中的示例来收集我目前所掌握的信息。
这些是我的 cshtml 页面的当前(相关)部分。
第一个操作(按下拉列表过滤):在页面顶部我有一个下拉列表,我可以通过该下拉列表按一个列值过滤表单。它本身就很好用。
@using (Html.BeginForm())
{
<p>
Filter by Campus: @Html.DropDownList("searchByFilter", new SelectList(ViewBag.names))
<input type="submit" value="Filter" />
</p>
}
第二个动作(按列排序):在表格的标题行中,我有一个动作链接,当用户单击列标题时,控制器会为表格提供适当的排序。我只是在表格中显示一列,向您展示它是如何工作的。
<th>
@Html.ActionLink("Campus", "Index", new { orderBy = ViewBag.CampusSortParm })
</th>
问题:虽然它们独立工作的效果很好——出于显而易见的原因,这两个操作链接不能一起工作。我希望我可以保持简单并做这样的事情,添加第二个参数可以读取下拉列表的值(null 不是一个选项)。
<th>
@Html.ActionLink("Campus", "Index", new { orderBy = ViewBag.CampusSortParm
@*, searchByFilter = selected value of searchByFilter dropdown, but how do I get it here? *@ })
</th>
我可以以这种方式添加第二个参数,还是需要研究 jQuery 解决方案?
【问题讨论】:
-
你需要javascript/jquery。
@Html.ActionLink()是在发送到视图之前在服务器上解析的剃须刀代码。它无法响应客户端事件。 -
我害怕这样的事情,但我想确定一下。谢谢。
标签: asp.net-mvc razor asp.net-mvc-5