留言簿
留言成功,请等待站长审核,谢谢支持!
2013-01-09 16:51 bruce
杨老师,您写的 MVCPager 我发现一个问题,也不知道是不是 Bug。 var modelResult = new PagedList<Product>(data, pageIndex, 10, recordCount); 上面的代码,当 data 里面的 Count=0,而 recordCount 不为 0 时,就会报:索引超出范围,这种情况是很常见的,比如用户手动在 Url 上输入一个任意大的 pageIndex 时(http://localhost:1661/Product/Index/100000000),就会出现这个问题。我是第一次上来提问,请一定要回复哈,谢谢了!
回复:您好,您说的这个PagedList构造函数第一个参数是当前页数据,不是总的数据,所以Count为0没有任何影响,这应该是您代码中其它引用这个数据的地方没有处理好而出错的吧?您可以看看MvcPager的标准url分页示例,即使手工输入一个超出总页数的页索引,也不会出现错误,而是默认显示最后一页数据。谢谢!
2013-01-08 15:52 Leason
您好! 我的原来的连接时被重定向的,然后点击第二页的时候,连接变成了原始链接加本页名称再加page=2,这样就找不到资源,请问这个问题怎么解决。
回复:您好,很抱歉,我没看懂您的问题,另外您也没说您用哪个控件,所以无法帮上您。谢谢!
2013-01-07 08:50 tiaru
杨老师,向您问一个题外的,关于MVC Area,按自动生成的代码,Area可以执行,但RouteData.Values["area"] 为空,我怎么取得RouteData.Values["area"] ="Admin"? http://social.msdn.microsoft.com/Forums/zh-CN/295/thread/32b9e75f-6771-4e32-948b-ecf9dd3e0dc6 ,请您看看。
回复:在View中获取Area名可以这样:ViewContext.RouteData.DataTokens["area"]。谢谢!
2013-01-06 20:54 tiaru
杨老师,如果我在Helper里重载一个MvcCaptcha接收Area,另外复制一个_MvcCaptchaController到Area/Admin/Controller里,是可以取得出验证码。 不过,想问您有没有更好的方法可以解决。
回复:您好,这是您area路由定义有问题吧,我就在area中使用MvcCaptcha,从来没有任何问题,我不理解您把area名在路由中设为参数做什么?谢谢!
2013-01-06 20:12 tiaru
杨老师您好,还是今天早上那个问题, Area中AdminAreaRegistration.cs文件 context.MapRoute( "Admin_default", "{area}/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional }, new string[] { "ClansSystem.Areas.Admin.Controllers" } ); 这种情况下可以获取area名为Admin,但是验证码无法加载,出现之前那个错误。 把"{area}/{controller}/{action}/{id}"改为"Admin/{controller}/{action}/{id}"则area为空,但是可以加载验证码。 而且我试着获取Session值成功,请问这个怎么解决?
回复:您好,Area名就是当前文件夹名,这个是固定的,我不太题解您在路由表中把它设为参数干什么?我从没这么用过,我的路由定义就是您后面说的那种。谢谢!
2013-01-06 12:11 tiaru
杨老师您好: 刚才那个错误我已查明,是Area的关系。
2013-01-06 11:37 tiaru
杨老师,您好: 之前调试好了,今天出现这个错误, 无法找到资源 _MvcCaptcha/MvcCaptchaLoader?null
回复:您是不是把Session禁用了?请检查。谢谢!
2013-01-03 17:13 魏水平
navigation.NavName = NavName; navigation.Introduce = Introduce; navigation.RoutingUrl = RoutingUrl; navigation.NavigationPic = NavigationPic; navigation.Sequence = Convert.ToInt32(Sequence); navigation.Published = Convert.ToByte(Published); navigation.CreateDate = DateTime.Now; NetCMS.cms_navigation model = dataContext.cms_navigation.FirstOrDefault(e => e.ID == navigation.ID); model = navigation; //UpdateModel(model, Request.Form.AllKeys); //dataContext.cms_navigation.InsertOnSubmit(navigation); dataContext.SubmitChanges(); 这里为什么不能更新修改 我是自己一个一个对应到模型里去的
回复:您好,model = navigation这样的方式并没有将navigation对象的所有属性赋值给model对象,您可以测试一下,您需要用AutoMapper这样的工具或者手工对每个属性赋值。谢谢!
2012-12-30 02:39 tiaru
你好!在MVC4下使用出现这样一个错误,请指教。 System.Web.Mvc.HtmlHelper<dynamic>”没有名为“Pager”的适用方法,但似乎有一个具有该名称的扩展方法。扩展方法不能进行动态调度。请考虑强制转换动态参数,或调用该扩展方法但不使用扩展方法语法。
回复:您好,Pager扩展方法的第一个参数必须是实现IPagedList接口的对象,不能使用dynamic对象,请参考帮助和示例。谢谢!
2012-12-28 14:37 胡谦
老师,您好!为什么用了GoToPage(2)方法,控件的数据显示是对的,但是AspNetPager显示的页码还是在第一页,这个问题该怎么解决?谢谢!
回复:您好,这个方法在url分页方式下没有作用,url分页方式下跳转到指定页需要直接打开该页面对应的url地址。谢谢!