Asp.net mvc Jquery无限滚动不';t调用操作方法-可能是路由问题
我使用无限滚动进行分页。直到今天,它一直运转良好。今天,我决定在我所有的动作方法中添加两个额外的参数,现在从无限卷轴指向动作方法有点问题。Asp.net mvc Jquery无限滚动不';t调用操作方法-可能是路由问题,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-routing,infinite-scroll,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Routing,Infinite Scroll,我使用无限滚动进行分页。直到今天,它一直运转良好。今天,我决定在我所有的动作方法中添加两个额外的参数,现在从无限卷轴指向动作方法有点问题。 因此,当我滚动页面时,不会调用该操作。 所以我打开页面源代码,找到应该加载下一页的链接,它看起来像: href="/Tickets/AnotherSetOfData?countryCode=uk&cityName=london&ticketTypeId=-1" 如果单击此链接,则会调用操作方法,因此问题是无限滚动不知何故会停止调用滚动上的此
因此,当我滚动页面时,不会调用该操作。
所以我打开页面源代码,找到应该加载下一页的链接,它看起来像:
href="/Tickets/AnotherSetOfData?countryCode=uk&cityName=london&ticketTypeId=-1"
如果单击此链接,则会调用操作方法,因此问题是无限滚动不知何故会停止调用滚动上的此函数。这就是action方法的样子
public ActionResult AnotherSetOfData(string countryCode, string cityName, int ticketTypeId)
{...}
我怀疑这可能是路由问题,但我不知道如何处理…路由
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
无限滚动
<nav id="page-nav">
<a href="@Url.Action("AnotherSetOfData", "Tickets", new { countryCode = ViewBag.countryCode, cityName = ViewBag.cityName, ticketTypeId = ViewBag.ticketTypeId })">
</a>
</nav>
...
$container.infinitescroll({
navSelector: '#page-nav', // selector for the paged navigation
nextSelector: '#page-nav a', // selector for the NEXT link (to page 2)
itemSelector: '.item', // selector for all items you'll retrieve
loading: {
finishedMsg: 'No more pages to load.',
img: 'http://i.imgur.com/6RMhx.gif'
}
},
function (newElements) {
var $newElems = $(newElements).css({ opacity: 0 });
$newElems.imagesLoaded(function () {
$newElems.animate({ opacity: 1 });
$container.isotope('appended', $newElems);
});
...
$container.infinites卷({
导航选择器:'#页面导航',//页面导航的选择器
下一个选择器:“#页面导航a”,//下一个链接(到第2页)的选择器
itemSelector:'.item',//将检索的所有项目的选择器
装载:{
FinishedMg:“没有更多页面要加载。”,
img:'http://i.imgur.com/6RMhx.gif'
}
},
函数(新元素){
var$newElems=$(newElements).css({opacity:0});
$newElems.imagesLoaded(函数(){
$newElems.animate({opacity:1});
$container.同位素('added',$newElems);
});
将其放入您的Global.asax.cs
routes.MapRoute(
"InfiniScroll", // Route name
"{controller}/{action}/{countryCode}/{cityName}/{ticketTypeId}", //URL with parameters
new { controller = "Tickets", action = "AnotherSetOfData"}); // Parameter Defaults
您为此设置了路由吗?请查看路由代码:)无限滚动设置也会很有趣…我已更新了路由中的所有问题如果我添加该路由,则不会发生任何情况:(嗯,对我来说很有用..我不熟悉Infinity scroll,但我不知道它在哪里获取结果并用ajax加载回去..我只是看到你在一个div中创建了一个链接。你用FireBug/HTTPFox调试过这个吗?看看它是否真的在调用,但可能没有加载结果?看看jquery是否正在启动当您向下滚动时,将调用该链接div中的操作。应调用该操作,然后将返回的数据加载到“function(newElements)…中的页面上。问题是没有数据,因为该链接div不是出于某种原因调用的。愚蠢的我(再次)忘记了无限滚动到工作中必须有“id”所以通过使用稍微修改过的路由(添加了{id}),它就工作了。