刚刚开始我的 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/