留言簿

我要留言
留言搜索

2019-03-18 11:47  张文杰

搜索分页搜索后不能回到第一页
@using (Html.BeginForm("Search", ViewContext.RouteData.GetRequiredString("Controller"), new RouteValueDictionary { { "id", "" } },
            FormMethod.Post, new { id = "form" })) 

这样生成的form的action是这样的 /TestPager/Search?Count=1&Keys=System.Collections.Generic.Dictionary%602%2BKeyCollection%5BSystem.String%2CSystem.Object%5D&Values=System.Collections.Generic.Dictionary%602%2BValueCollection%5BSystem.String%2CSystem.Object%5D。
如果把BeginForm方法的最后一个参数去掉生成的action是对的 /TestPager/Search 点击搜索可以回到第一页。
为什么BeginForm方法加上最后一个参数生成的action就会多一些乱七八糟的值
回复:您好,很明显是您的重载方法的参数有问题,与您最相近的两个重载方法是:BeginForm(HtmlHelper, String, String, Object, FormMethod, Object)和BeginForm(HtmlHelper, String, String, RouteValueDictionary, FormMethod, IDictionary),如果您第三个参数是RouteValueDictionary,那么最后一个参数必须是IDictionary,而您传递的是object,您可以改成:Html.BeginForm("Search", ViewContext.RouteData.GetRequiredString("Controller"), new RouteValueDictionary { { "id", "" } }, FormMethod.Post, new Dictionary {{ "id","form" }})或Html.BeginForm("Search", ViewContext.RouteData.GetRequiredString("Controller"), new { id= "" } }, FormMethod.Post, new { id = "form" })。谢谢!

2019-03-16 07:12  佩服webdiyer

您好!
请问MvcCaptcha.dll 仅能用于MVC,不能能用于Web Forms吗?
回复:您好,MvcCaptcha只支持MVC,不支持webform。谢谢!

2019-03-14 19:37  孤单小王子

你好,
我用var WarList = (from a in db.tp_spec_goods_price
                           join b in db.tp_goods
                           on a.goods_id equals b.goods_id
..OrderByDescending(s => s.id).ToPagedList(id,10);

查询出来的 直接取出要的集合。现在是匿名对象,怎么转成 pagelist 对象
回复:您好,现在就是PagedList,您的linq语句中没有select吗?如果您select的是a,那么返回的对象就是PagedList这个,如果select的是自定义的字段,则返回的是PagedList,谢谢!

2019-03-02 00:38  小彬彬

杨老师你好
我用Html.BeginForm做搜索会出现刷新页面情况  然后我换成Ajax.Pager 做搜索能OK 无刷新
我看你demo上有用到Html.BeginForm做无刷新搜索

对了很多遍代码 我不知道我哪里错了
我的代码如下
@using (Html.BeginForm("Index", "User", new { id = "articles" }, FormMethod.Get, new { id = "searchForm" }))
                    {
                        <div>
                            <div>
                                <input type="submit" class="btn" accesskey="S" value="搜索(S)" />
                            </div>
                            <div>
                                <span>电话:</span>
                                @Html.TextBox("Mobile", null, new { @class = "text-input", maxlength = "20" })
                            </div>
                            <div>
                                <span>登录名:</span>
                                @Html.TextBox("LoginName", null, new { @class = "text-input", maxlength = "20" })
                            </div>
                        </div>
                        

                    }

<div id="articles">
                @Html.Partial("_AjaxSearchGet")
            </div>

@section Scripts{@{Html.RegisterMvcPagerScriptResource();}}
回复:您好,没看到MvcPager的代码,不知道您是怎么调用和设置参数的?另外Ajax分页失败的话,最常见的原因是页面上有脚本错误导致Ajax请求失败,您可以用浏览器开发者工具调试检查一下。谢谢!

2019-03-01 23:20  小黑

@using (Ajax.BeginForm("Edit", "User", new { id = "frm" }, new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "result", OnSuccess = "OnSuccess" }))
{
.......
}

杨老师我用无刷新分页指定了对应的 form id =“frm” 如代码所示
但是生成的form id 怎么会是 form0   ajax.beginform 的写法怎么指定form id呀?
回复:您好,方法调用错误,第二个参数是路由值,而不是form的html属性,最后一个参数才是,正确的写法应该是:@using (Ajax.BeginForm("Edit", "User", null, new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "result", OnSuccess = "OnSuccess" },new { id = "frm" })),关于Ajax.BeginForm方法的重载请看这里:https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.ajax.ajaxextensions.beginform?view=aspnet-mvc-5.2。谢谢!

2019-02-23 16:42  小彬彬

杨老师你好,我用了ajax分页后重新渲染列表行样式会丢失,而且checkbox 全选效果也失效,我每次在分部视图重新做样式加载或者是事件加载是可以解决问题,但是我页面很多,有没有什么更好的办法 谢谢!
回复:您好,出现这个问题应该是Ajax分页失败导致的,分页后返回的分部视图信息没有被插入到页面指定部位,而是打开了新页面,所以导致css样式等全部丢失,请用浏览器开发者工具检查调试。另外要使checkbox列表全选功能有效,必须用类似于$("#mytable").on("click",":checkbox",function(){...})冒泡到checkbox的上一级进行绑定才行,否则因为分页后的checkbox是新创建的,不用前面的方法事件绑定就不会对新创建的元素起作用,请参考jQuery的on方法文档。谢谢!

2019-02-21 12:22  史新雨

您好,我用了您的Ajax动态加载那个,为啥点击分页之后会触发很多次请求的url呢?还有,如果有额外的参数我如何传到相应的控制器?
回复:您好,出现这个问题最大可能性是您将脚本注册到分页视图上,导致每次分页后客户端分页按钮被反复绑定事件处理程序,请在主页面注册脚本插件而不是分页视图上。额外的参数可以通过PagerOptions.RouteValues这个属性值来传递生成。谢谢!

2019-02-21 09:51  史新雨

您好,我mvc初学者,用了您的标准ajax分页想实现只刷新分部视图,就是主页面局部刷新,为啥不行呢,总是连主页面一块刷新了,判断是否为ajax请求的地方总是false。
回复:您好,您是否注册了分页脚本插件并正确引入了jQuery?另外请用浏览器开发者工具检查一下页面上是否有脚本错误,任何脚本错误都会导致Ajax请求失败。谢谢!

2019-02-14 10:53  曹

您好,AspNetPager不用url分页,能用另一个表中的字段排序吗?用多表链接的话翻页会报错
回复:您好,排序和分页没有直接关系,就象数据获取需要您自己实现一样,排序和数据获取是一样的。谢谢!

2019-02-12 15:01  ysp

杨老师,请问MVCPager的分页是先把所有数据查出来,再分页,数据量大的数据库那不是很慢吗
回复:您好,分页组件和数据获取逻辑没有直接关系,怎么获取数据控制权完全在您手上,不过MvcPager提供了一个ToPagedList的Linq扩展方法,如果您用sql server数据库的话,用这个方法获取数据是不是获取全部数据的。谢谢!
;