gpt4 book ai didi

c# - 一次触发多次的ajax调用

转载 作者:行者123 更新时间:2023-11-29 09:54:38 26 4
gpt4 key购买 nike

场景是我基本上尝试创建 4 个下拉菜单,当其中一个被更改时会重新填充。也就是过滤器彼此级联。

所以我决定将其放入 Ajax 调用中。基本上,它接受参数,决定应该返回哪些选择列表。然后用新的下拉菜单替换旧的 4 个下拉菜单。 (用新的部分替换当前的部分)

除了,出于某种原因,我让它调用 Controller 一次……然后两次……然后四次……等等。就好像旧 Controller 没有被移除/替换一样。只是隐藏?..

在视觉上,我看到了我所期望的。下拉列表更改选择选项。

下面是代码。 (p.s. 抱歉,如果某些变量名称有拼写错误,它们已被更改以在此处发布)

Controller :

   public class Filter
{
public IEnumerable<SelectListItem> List1;
public IEnumerable<SelectListItem> List2;
public IEnumerable<SelectListItem> List3;
public IEnumerable<SelectListItem> List4;
}

public ActionResult GlobalFilter(String l1, String l2, String l3, String l4)
{
Filter filter = new Filter();

filter.List1 = ...selectList

filter.List2 = ...selectList

filter.List3 = ...selectList

filter.List4 = ...selectList

return PartialView(filter);
}

查看:

    <div id="filterPartial">

@Html.Action("GlobalFilter", "Header")
</div>

局部 View :

@model ns.Controllers.HeaderController.Filter

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>

@using (Ajax.BeginForm("GlobalFilter", "Header", new AjaxOptions { UpdateTargetId = "filterPartial" }))
{

@Html.DropDownList("l1", Model.List1, new { })
@Html.DropDownList("l2", Model.List2, new { })

@Html.DropDownList("l3", Model.List3, new { })
@Html.DropDownList("l4", Model.List4, new { })

}
<script type="text/javascript">
$('#l1').change(function () {
$(this).parents('form').submit();
});
</script>

最佳答案

将它移到你的部分之外:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>

我还将更改脚本也移到了部分之外,并将其更改为处理动态内容,如下所示:

<script type="text/javascript">
$('#filterPartial').on('change', '#l1', function () {
$(this).closest('form').submit();
});
</script>

关于c# - 一次触发多次的ajax调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14485445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com