我今天有一份报告称分页不再适用于我的应用程序。由于这是最近的更新,有些事情发生了变化,但我不知道如何解决它。
最终归结为我的控制器中的错误操作被调用。我有两个动作如下:
1。非AJAX
[HttpGet]
public virtual ActionResult ByRegion(string aRegionNameOne, string aRegionNameTwo = "", string aRegionNameThree = "", string aRegionNameFour = "")
2。通过MVC寻呼机进行AJAX寻呼
public virtual ActionResult ByRegionForPage(string aRegionNameOne, string aRegionNameTwo = "", string aRegionNameThree = "", string aRegionNameFour = "", int p = 1)
当在MVC寻呼机中点击分页链接时,我通过FireBug获得了这样的链接:
https://localhost/region/australia/cruises/%232?X-Requested-With=XMLHttpRequest
而不是我在地址栏中看到的是:
我的路线是:
:一种。非寻呼路线(非AJAX)
aRoutes.MapRoute(RouteNames.SIDE_BAR_MENU_SEARCH_BY_REGION_1_LEVELS, "region/{aRegionNameOne}/cruises/{aPageNumber}", new
{
controller = MVC.Cruises.Name,
action = MVC.Cruises.ActionNames.ByRegion,
area = "",
//Work around bug in T4MVC https://github.com/T4MVC/T4MVC/issues/28
aPageNumber = UrlParameter.Optional
}
);
B中。寻呼路线(AJAX)
aRoutes.MapRoute(RouteNames.SIDE_BAR_MENU_SEARCH_BY_REGION_1_LEVELS_FOR_PAGE, "region/{aRegionNameOne}/cruises/#{p}", new
{
controller = MVC.Cruises.Name,
action = MVC.Cruises.ActionNames.ByRegionForPage,
area = "",
//Work around bug in T4MVC https://github.com/T4MVC/T4MVC/issues/28
p = UrlParameter.Optional
}
很明显%232?X-Requested-With = XMLHttpRequest 导致我命中路线A,因此操作1而不是预期的路线B.
从事物的外观来看,MVCPager正在破坏URL,因为HTML是:
<a data-pageindex="2" href="/region/australia/cruises/%232">2</a>
有没有人对修复有任何想法或看到过这种行为?