我有一个ASP.NET(C#)
申请。
在我的 HomeController :
中 public ActionResult Itens()
{
// Do anything here, doesn't matter.
return PartialView("_Itens");
}
在我的 PartialView :
中 <div class="itensPaginacaoEstilo">
<div id="loadingPaginacao" class="divLoadingPaginacao" style="display: none">
<img src="~/Content/Img/loadingAnimado.gif"/>
</div>
<div id="paginacaoProdutos" class="pagination a-paginacao-estilo">
@Html.PagedListPager(produtosPaginados, page => Url.Action("Itens", new { page, perPage = perPage, filtrosColecao = filtrosColecao, filtrosHierarquia = filtrosHierarquia, filtrosLegendaLinha = filtrosLegendaLinha, filtrosFamilia = filtrosFamilia, filtrosMarca = filtrosMarca, filtrosEstoque = filtrosEstoque, filtrosMix = filtrosMix, chamador = chamador }), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions { UpdateTargetId = "retorno", OnBegin = "MostraLoadingPaginacao()", OnComplete = "EscondeLoadingPaginacao(), MandaParaTopo()"}))
</div>
</div>
`@Html.PagedListPager 生成:
在我的情况下,Url.Action
会隐式带来一个会生成分页的代码,在分页的每个按钮中,他都会将代码放在下面。
生成代码:
<li>
<a data-ajax="true" data-ajax-begin="MostraLoadingPaginacao()" data-ajax-complete="EscondeLoadingPaginacao(), MandaParaTopo()" data-ajax-mode="replace" data-ajax-update="#retorno" href="/Home/Itens?page=4&perPage=25&filtrosColecao=1%2C&chamador=0">4</a>
</li>
问题:
我的方法&#34; Itens&#34;由此引用:
href="/Home/Itens?page=4&perPage=25&filtrosColecao=1%2C&chamador=0">4</a>
...执行方法&#34; Itens&#34;两次。
---为什么会发生这种情况?
答案 0 :(得分:1)
我发现我的项目出了什么问题。我正在使用这两个JavaScript
文件:
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
然后我发现每个文件一次调用ajax。
解决方案:
研究这两个文件我发现它们是一样的。它们之间唯一的变化是一个比另一个更紧凑。
所以我删除了ajax.js
,只留下了我项目中的ajax.min.js
:
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
现在这些方法只打了一次。它运作得很好。