mvc 中的 asp-route-xxx 和不显眼的 ajax 不起作用

asp-route-xxx in mvc and unobtrusive ajax not working

提问人:mz1378 提问时间:7/23/2023 最后编辑:marc_smz1378 更新时间:7/23/2023 访问量:30

问:

我有一系列使用ajax链接('a'标签)的链接,如下所示:

@foreach (int i in Enumerable.Range(1, Model.PagingInfo.TotalPages))
{
    string aClass = (Model.PagingInfo.CurrentPage == i ? "btn btn-secondary" : "btn btn-primary");
    <li class="page-item @(Model.PagingInfo.CurrentPage == i ? "active" : "")">
        <a class="page-link"
            data-ajax="true" data-ajax-method="get" 
            data-ajax-url="@(Url.Action("GetUsers", "AccountAdmin"))"
            data-ajax-mode="replace" data-ajax-update="#TableDiv"
            data-ajax-loading="#ajax" data-ajax-failure="failed" 
            asp-route-page="@i" 
            asp-route-pageSize="@Model.PageSize"
            asp-route-search="@Model.Search" 
            asp-route-sortOrder="@Model.SortOrder"
            asp-route-sortExpression="@Model.SortExpression">                                       
            @i
        </a>
    </li>                               
}

当我检查第 2 页链接时,asp-route 变量在 ajax 链接的 href 属性中编码。HREF 是正确的,对于第二个链接,有正确的值。

但是当我单击第二个链接时,操作方法没有路由值。并且 Action 方法以默认值执行。

如何解决这个问题?

asp.net-core-mvc 不显眼的 ajax

评论


答:

0赞 mz1378 7/23/2023 #1

我把a改成了:

 <a class="page-link"
     data-ajax="true" data-ajax-method="get" 
     data-ajax-url="@(Url.Action("GetUsers", "AccountAdmin", 
                    new { page = i, pageSize = Model.PageSize, search = Model.Search,
                    sortOrder = Model.SortOrder, sortExpression = Model.SortExpression}))"
     data-ajax-mode="replace" data-ajax-update="#TableDiv"
     data-ajax-loading="#ajax" data-ajax-failure="failed">                                  
     @i
 </a>

现在有效。