asp.net-mvc – ASP.Net MVC在回发之间保持动作参数
|
假设我有一个显示搜索结果的页面.我搜索stackoverflow并返回5000个结果,每页10个.现在我发现自己在该页面上构建链接时这样做: <%=Html.ActionLink("Page 1","Search",new { query=ViewData["query"],page etc..%>
<%=Html.ActionLink("Page 2",page etc..%>
<%=Html.ActionLink("Page 3",page etc..%>
<%=Html.ActionLink("Next",page etc..%>
我不喜欢这个,我必须仔细考虑之前发布的内容等来建立我的链接. 我想做的是 <%=Html.BuildActionLinkUsingCurrentActionPostData
("Next",new { Page = 1});
其中匿名字典覆盖当前由上一个操作设置的任何内容. 基本上我关心以前的动作参数是什么,因为我想重用,听起来很简单,但是开始添加排序和加载的高级搜索选项,它开始变得凌乱. 我可能遗漏了一些明显的东 解决方法我在HtmlHelper中遇到了类似的问题;我希望生成链接到当前页面的链接,并对参数进行少量调整(想想增加页码).因此,如果我有URL / Item /?sort = Name& page = 0,我希望能够创建指向同一页面的链接,但只需更改页面参数,并自动包含sort参数(即/ Item /?排序=名称和放大器;页= 1).我的解决方案就是这个(用于HtmlHelper扩展方法,但由于您几乎可以在MVC中的任何位置访问相同的数据,因此您可以根据自己的需要轻松调整它): private static RouteValueDictionary CreateRouteToCurrentPage(HtmlHelper html)
{
RouteValueDictionary routeValues
= new RouteValueDictionary(html.ViewContext.RouteData.Values);
NameValueCollection queryString
= html.ViewContext.HttpContext.Request.QueryString;
foreach (string key in queryString.Cast<string>())
{
routeValues[key] = queryString[key];
}
return routeValues;
}
该方法的作用是将RouteValueDictionary用于当前请求并创建它的副本.然后,它将查询字符串中找到的每个查询参数添加到此路由.这样做是因为,由于某种原因,当前请求的RouteValueDictionary不包含它们(您认为它会,但它不会). 然后,您可以获取结果字典,仅修改其中的一部分,例如: routeValues["page"] = 2; 然后将该字典赋予开箱即用的HtmlHelper方法,以便为它们生成URL / etc. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 为什么在发送到asp.net web方法之前jquery不将我的数组转换
- 在ASP.NET WebForms中使用jQuery调用’WebMethod’
- asp.net-mvc-3 – ASP.NET MVC 3:将应用程序移动到虚拟目录
- asp.net-mvc – 如何设置TextBox的空字符串而不是null的默认
- 对asp.net网站进行基准测试,我可以使用jmeter吗?
- asp.net – 脚本标签和链接标签进入asp:内容或外部
- ASP.NET应用程序不反映区域设置
- 什么是最好的.NET库的OpenID和ASP.NET MVC?
- ASP.NET Web API请求完成后如何处置资源?
- asp.net – 设置从Codebehind中选择的Radiobuttonlist
- asp.net-mvc – ASP.NET MVC:Action中的授权 –
- asp.net-mvc – 使用UIHint的ASP.NET MVC 3自定义
- 为ASP.NET应用程序实现后台服务的最佳方法是什么
- asp.net – HttpServerUtility.UrlPathEncode vs
- 可以在ASP.NET用户控件中使用void async方法吗?
- asp.net – 使用Entity Framework的仓库模式(mvc
- asp.net-mvc – ASP.NET MVC内联Razor变量
- asp.net-mvc – 有没有人知道让Ninject 2在ASP.N
- asp.net-mvc – ASP.NET MVC控制器动作设计
- 发布ASP.NET vNext / DNX与CLR类库结合使用
