【问题标题】:Can an Html.Actionlink pass the selected value of a dropdownlist?Html.Actionlink 可以传递下拉列表的选定值吗?
【发布时间】: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


【解决方案1】:

感谢@Stephen Muecke 确认我提出的问题需要在 jQuery 或 Javascript 中完成。

但是,在问自己为什么我的代码能够运行到现在之后,我想到了可以做出的明显改变。我没有按列单击排序,而是将其作为表单提交的一部分。

@using (Html.BeginForm())
{
<div>
    <p>
        Filter by Campus: @Html.DropDownList("searchBy", new SelectList(ViewBag.names))
    </p>
    <p>
        <strong>Sort by Column: </strong>
        @Html.DropDownList("orderBy", new SelectList (ViewBag.SortByColumns))
    </p>
    <p>
        <strong>Sort Direction: </strong>            
        @Html.DropDownList("orderDir", new SelectList(ViewBag.SortDir))
    </p>
    <input type="submit" value="Apply" />
</div>
}

这现在非常适合我的需要。我的问题的结果达到了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多