Jquery ASP.NET MVC Ajax:如何从select将参数值传递给Ajax操作?
我希望有一个过滤页面,该页面执行ajax请求以异步更新结果列表 有两个带有选项值的组合框和一个Ajax.ActionLink。 列表在div中呈现为局部视图 我知道如何实现控制器部分以及交互逻辑。我缺少的是如何在Ajax.ActionLink调用中传递参数 当用户单击链接时,我想更新呈现为“子列表”部分视图的列表Jquery ASP.NET MVC Ajax:如何从select将参数值传递给Ajax操作?,jquery,asp.net-mvc,ajax,asp.net-ajax,Jquery,Asp.net Mvc,Ajax,Asp.net Ajax,我希望有一个过滤页面,该页面执行ajax请求以异步更新结果列表 有两个带有选项值的组合框和一个Ajax.ActionLink。 列表在div中呈现为局部视图 我知道如何实现控制器部分以及交互逻辑。我缺少的是如何在Ajax.ActionLink调用中传递参数 当用户单击链接时,我想更新呈现为“子列表”部分视图的列表 <%= Html.DropDownList("branches", Model.Branches) %> <%= Html.DropDownList(
<%= Html.DropDownList("branches", Model.Branches) %>
<%= Html.DropDownList("regions", Model.Regions) %>
<%= Ajax.ActionLink("Filter", "SubList",
new {branchID = ??, regionID = ??},
new AjaxOptions() { UpdateTargetId = "theList"} ) %>
<div id="theList">
<% Html.RenderPartial("SubList", Model.List); %>
</div>
为局部视图提取数据的控制器操作:
public ActionResult SubList(int branchId, int regionId)
{
if (this.Request.IsAjaxRequest())
{
List<Company> filtered = this.repository.QueryCompanies().Where(c => c.BranchID == branchId && c.RegionID == regionId).ToList();
return PartialView("SubList", filtered);
}
return null;
}
public ActionResult子列表(int-branchId,int-regionId)
{
if(this.Request.IsAjaxRequest())
{
List filtered=this.repository.QueryCompanies().Where(c=>c.BranchID==BranchID&&c.RegionID==RegionID.ToList();
返回PartialView(“子列表”,已过滤);
}
返回null;
}
如何将branchID和regionID参数(页面上两个下拉列表中的选定值)传递给控制器操作子列表?这应该用javascript或使用
表单来完成,而不是锚定。没有什么东西可以代替你的?
,让它工作。无法在服务器端设置这些值,因为它们可能在客户端更改。因此,基本上你需要在你的两个选择的onchange事件中连接,并用新的值更新你的链接url,或者只使用表单
其中有一句话:
<% using (Ajax.BeginForm("SubList", new AjaxOptions() {
UpdateTargetId = "theList"
})) { %>
<%= Html.DropDownList("branchId", Model.Branches) %>
<%= Html.DropDownList("regionId", Model.Regions) %>
<input type="submit" value="Filter" />
<% } %>
<div id="theList">
<% Html.RenderPartial("SubList", Model.List); %>
</div>
谢谢Darin,Ajax.BeginForm是我想要的概念。