Web应用程序调用两次相同的方法

时间:2014-04-16 17:04:42

标签: c# asp.net-mvc

我有一个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&amp;perPage=25&amp;filtrosColecao=1%2C&amp;chamador=0">4</a>
</li>

问题

我的方法&#34; Itens&#34;由此引用:

href="/Home/Itens?page=4&amp;perPage=25&amp;filtrosColecao=1%2C&amp;chamador=0">4</a>

...执行方法&#34; Itens&#34;两次。

---为什么会发生这种情况?

1 个答案:

答案 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>

现在这些方法只打了一次。它运作得很好。