【发布时间】:2017-06-20 17:03:14
【问题描述】:
我目前正在为 ASP.NET Core MVC 编写自己的分页列表。
我在创建以下内容时很挣扎:
我想创建一个 UrlHelper 扩展方法: Url.PageLink(int page, int pageSize)
在该扩展方法中,我想返回一个链接,该链接重用控制器、操作、查询字符串的所有当前值,此外它还应该在查询字符串中添加/更新页面、pageSize 值。
问题: 从哪里获取 UrlHelper 对象中的当前控制器和操作? 重建查询字符串的最佳方法是什么? 我可以在这里看到它 url.ActionContext.HttpContext.Request.QueryString... 但我真的必须手动重建它吗?还是存在 AddQueryStringValue(int key, object value) 之类的东西?
提前非常感谢!!! 西蒙
【问题讨论】:
-
您打算从哪里使用您的 URLHelper?您需要设计一个包含所需信息的 ViewModel。你为什么使用查询字符串?
-
我需要查询字符串,因为我想让这个方法适用于任何类型的视图。我不想使用特定的视图模型。我只想创建一个扩展方法 public static string PageLink(this IUrlHelper url, int page, int pageSize)
-
我明白了。那么QS本身只是键值对的集合..你能把它作为你的分机中的参数吗?方法?
-
当我可以通过 url.ActionContext.HttpContext.Request.QueryString 访问它时,为什么要将它传递给扩展方法?我的问题是一个不同的问题...如何在添加新的查询字符串值的同时保留当前的路由和查询字符串值...这仅在当前 UrlHelper 对象的帮助下...
-
对不起..我不太明白这个问题...我不太习惯 UrlHelper..
标签: c# asp.net-mvc razor asp.net-core asp.net-core-mvc