c# - 在 ASP.Net MVC 中维护查询字符串

标签 c# asp.net-mvc

刚刚开始我的 ASP.Net MVC 之旅,在我深入研究之前我有一些疑问。

我有一个表格,它是分页的,表格上方有 2 个控件:

  • 定义结果顺序的下拉菜单和旁边的应用按钮
  • 定义过滤器的文本框和旁边的应用按钮

我需要实现的是,如果用户更改顺序或添加过滤器,我会像这样对我的操作触发 AJAX 调用:/Membership/Users?sort=value &filter=&page=页码。所以我的 Controller Action 是:

   // GET Membership/Users?sort=&filter=&page=
   public ActionResult Users(string sort, string filter, string page)

所以我有 3 个问题:

  • 这是正确的方法吗?
  • 请记住,Jquery/Ajax 函数几乎总是会调用该操作,确保维护查询字符串的最佳方法是什么?
  • 如果我想通过参数直接链接到此操作,是否需要对查询字符串进行硬编码?

谢谢

最佳答案

您可以定义格式为 Membership/Users/{sort}/{filter}/{page} 的新路由。

routes.MapRoute(
        "MembershipList",                                              
        "Membership/Users/{sort}/{filter}/{page}",             
        new { controller = "Membership", action = "Users", sort = "", filter = "", page = "" }
    );

但是,如果参数是可选的,那么我建议您保持原样,不要定义路由。

当您传递字符串时,如果由于某种原因没有传递查询字符串,它们将简单地作为 null 传递,您的操作应该处理这个并仍然呈现 View 。

关于c# - 在 ASP.Net MVC 中维护查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3045116/

相关文章:

c# - 通过 C# 更改 Windows Mobile 5 主题

c# - 如何在 asp.net mvc 中使用 Linq 从数据库中删除多条记录

asp.net - 在 ASP.NET Core 中检测移动设备

asp.net-mvc - 如何在 MVC 中使用 HtmlHelper 获取自定义 id 进行渲染

c# - UTF-8 或 UTF-16 或 UTF-32 或 UCS-2

c# - 当我的 MVC Controller 中没有数据时,尝试读取无效

c# - DbContext 和 ObjectContext 有什么区别

asp.net - 使用 IIS 10 初始化应用程序

asp.net-mvc - Asp.net 5(vnext)可以使用了吗?

C# 获取自动递增的插入id