Pau*_*aul 5 asp.net-mvc razor drop-down-menu
我有一项功能,允许用户根据自己的状态代码过滤记录.在菜单中,我有一个自定义过滤器部分:
<h3>Custom Filters</h3>
<br />
<ul id="ui-ajax-tabs">
@{ Html.RenderAction("GetGroups", "Manage");}
</ul>
Run Code Online (Sandbox Code Playgroud)
而我的部分观点如下:
@model IEnumerable<AllEngage.Model.Group>
@using AllEngage.Web.Helpers
@foreach (var group in Model)
{
<li>
<label for="@group.GroupName">@group.GroupName</label>
@Html.DropDownList("GroupItems", group.GroupItems.ToSelectListItems())
</li>
}
Run Code Online (Sandbox Code Playgroud)
从下拉列表中选择一个项目时,我想在我的控制器中触发一个操作方法:
[HttpGet]
public ActionResult Index(int page = 1, int groupFilterId = -1)
Run Code Online (Sandbox Code Playgroud)
什么是最好的方式去?使用json开火还是以某种方式回复帖子?
你需要把你的param传递给行动.执行此操作的方法 - 通过查询字符串传递与操作中的param相同的名称:
http://mysite/GetGroups?groupFilterId=2
Run Code Online (Sandbox Code Playgroud)
要刷新它,您需要发送带有param whitch的ajax请求将触发onchange
下拉控件.为过滤器控件指定一些ID:
@Html.DropDownList("GroupItems", group.GroupItems.ToSelectListItems(), new {@id="ddlFilter"})
Run Code Online (Sandbox Code Playgroud)
然后使用jQuery发出数据的GET请求:
$('#ddlFilter').change(function() {
var queryLink = '@Url.Action("GetGroups")';
if ($(this).val() != '') {
queryLink += '?groupFilterId=2';
}
$.get(queryLink, function(data) {
$('#ui-ajax-tabs').html(data);
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24185 次 |
最近记录: |