留言簿
留言成功,请等待站长审核,谢谢支持!
2014-03-13 16:49 rxb
杨老师,我的mvc3.0的项目中用到您的ajaxhtml的get搜索分页时,在首页里(HomeController的index返回的首页视图)搜索后,调用ScheduleController中的SeachHotel的方法后返回到searchotel的视图时,在第一次搜索时可以分页并显示第一页的数据,可是为什么下一页后就是空白,取不到数据。 以下是SearchHotel方法 public ActionResult SearchHotel(string destination,string intime,string outtime,string keyword, int id = 1) { PagedList<Hotel> searchHotel; ViewData["destination"] = destination; ; ViewData["intime"] = intime; ViewData["outtime"] = outtime; ViewData["keyword"] = keyword; string[] time1 = intime.Split(new char[] { '-' }); string[] time2 = outtime.Split(new char[]{ '-' }); DateTime inTime = new DateTime(int.Parse(time1[0]), int.Parse(time1[1]), int.Parse(time1[2])); DateTime outTime = new DateTime(int.Parse(time2[0]), int.Parse(time2[1]), int.Parse(time2[2])); searchHotel = PageController.SearchPager(destination, inTime, outTime, keyword, id); if (Request.IsAjaxRequest()) return PartialView("_HotelPager", searchHotel); return View(searchHotel); } public static PagedList<Hotel> SearchPager(string destination, DateTime intime, DateTime outtime, string keyword, int id) { //SearchHotelModel model = new SearchHotelModel(); var hotel = (from t in hotelDB.Hotels where t.hotelName.Contains(keyword) && t.hotelAddress.Contains(destination) orderby t.hotelId select t).AsQueryable(); PagedList<Hotel> searchModel = hotel.ToPagedList(id, 3); return searchModel; } 请问下杨老师是怎么回事?
回复:您好,我也无法从代码中看出什么问题,您需要设置断点认真调试一下,看相应的参数是否正确传递到了controller的action方法中。谢谢!
2014-03-13 16:13 邓明
MvcPage2.0在ie8下会读取另外一个用户的数据
回复:您好,很抱歉,没有看懂您的意思,如果是数据问题,应该是MvcPager本身没有关系,需要您自己调试检查。谢谢!
2014-03-13 13:16 多个Model在view
有一个model1,model1里包含多个model, public class model1{ public model2 models{set;get;} public model3 model3{set;get;} } 我在action里有是 { model1.model2=db.model2.tolist(); model1.model2=db.model3..OrderBy(a=>a.ID).ToPagedList(id,6); return view(model1); } 在view页 @model PagedList<model1> 错误 7 未能找到类型或命名空间名称“PagedList”(是否缺少 using 指令或程序集引用?)
回复:您好,您需要引入Webdiyer.WebControls.Mvc命名空间,@using Webdiyer.WebControls.Mvc。示例中是在View目录下的web.config中全局引入的,请注意一下。谢谢!
2014-03-12 16:54 ray
如果当前页是第一页,我需要前一页按钮不显示,当前页是最后一页,后一页按钮不显示,怎么办?
回复:您好,如果是AspNetPager,设置ShowDisabledButtons为false,如果是MvcPager,设置PagerOptions.ShowDisabledPagerItems,详情请参考帮助文档。谢谢!
2014-03-12 09:18 墨鱼
请问 aspx 网站分页 点击下一页网页显示不出来 是什么原因啊
回复:您好,从您的描述中无法知道是什么错误引起的,您需要仔细调试才能找出可能的原因。谢谢!
2014-03-11 20:10 蜀山
老师您好! 请问MvcPager控件中ajax分页怎么传多个参数到Controller?求教!
回复:您好,请看上一个问题的答复。谢谢!
2014-03-11 19:48 younger
您好! 请问MVCPager怎么传两个参数给Controller?
回复:您好,不太明白您的意思,MvcPager的相应构造函数中都有routeValues等参数,您可以通过这些参数来传递。谢谢!
2014-03-10 14:00 charmers
你好,使用AJAX Post方式,示例代码是 public ActionResult AjaxSearchPost(int id = 1) { var model = DemoData.AllArticles.OrderByDescending(a => a.PubDate).ToPagedList(id, 8); if (Request.IsAjaxRequest()) return PartialView("_AjaxSearchPost", model); return View(model); } 想实现首次打开不加载数据,我修改成: public ActionResult AjaxSearchPost() { return View(); } 为什么实现不了呢?(Post后点页码提交不到[HttpPost]) 回复:您好,首次打开不加载数据会导致MvcPager以为只有一页数据,默认情况下控件不会显示,因此Ajax相关的属性也没有加载,导致其后的Ajax查询失败,请将PagerOptions的AutoHide设置为false,这样即使在没有数据的情况下Ajax属性也会被加载。谢谢! =================================== 添加AutoHide=false不起作用,只是多了“页索引超出范围”。点击页码后,仍然是到[Get]的Action
回复:您好,首次打开不加载数据就是没有数据要分页,您得进行查询获得数据后才能分页。谢谢!
2014-03-09 16:42 黑子
杨涛老师,我想问一下,这个mvc4.5的如何实现多参数分页呢?我试过好多次,看了你的demo也没实现功能,代码: routes.MapRoute("listtwo", "list/vod-{cid}-{name}-p{paged}.html", new { controller = "list", action = "more", cid = UrlParameter.Optional, name = UrlParameter.Optional, paged = 1 }, new { action = "more"}, new string[] { "Hth.Web.Controllers" }); @Html.Pager(Model, new PagerOptions { ShowPageIndexBox = true, PageIndexBoxType = PageIndexBoxType.DropDownList,PageIndexParameterName = "paged",CssClass = "pages", ShowGoButton = false, FirstPageRouteName = "Default" }, "listtwo") 我主要是想实现这种 第一页的时候list/vod-{cid}-{name}.html 第二页或者后面list/vod-{cid}-{name}-p{2...N}.html 现在怎么弄第一页都必须有list/vod-{cid}-{name}-p1.html 怎么实现呢?
回复:您好,您需要定义一个Url格式为list/vod-{cid}-{name}.html的路由并赋给FirstPageRouteName,确保此路由优先级高于listtwo,请参考示例中“首页Url SEO”的源码及说明。谢谢!
2014-03-08 17:48 rui
杨老师,您好,我用NoDbDemo/AjaxSearchHtmlPost测试, 我想用<div id="ad">百强县</div> $(function () { $("#ad").click(function () { var i = '百强县';//var i=$(this).html(); $.ajax({ url: '/NoDbDemo/AjaxSearchHtmlPost', data: { 'title': i, 'author': "", 'source': "" }, type: "POST", success: function (data) { alert("success"); } }); }); }); 这样调用 是成功的,在ajaxSearchPostResult方法也能根据传过去的条件查出正确的结果,比如总条数,但到页面时数据是没变的,是因为没有刷新的结果 , @Html.Partial("_AjaxSearchPost", Model)这里没有刷新,我想做无刷新的条件查询分布,请问要怎样改呢。
回复:您好,您这样自己通过Ajax提交的查询和MvcPager是没有交互性的,MvcPager无法知道您的查询条件,所以也无法为您正确分页,您需要设置MvcPager的DataFormId为查询条件所在表单的ID,然后在您的Ajax方法中提交此表单。谢谢!