asp.net-mvc – MVC处理程序,用于未知数量的可选参数
我正在使用MVC路由,它将在URL的末尾获取未知数量的参数.像这样的东西:
domain.com/category/keyword1/keyword2/…/keywordN 这些关键字是我们必须匹配的过滤器的值. 到目前为止,我能想到的唯一方法是UGLY ……只需创建一个ActionResult,其参数多于我可能需要的参数: ActionResult CategoryPage(字符串urlValue1,字符串urlValue2,字符串urlValue3等…) 这感觉不对劲.我想我可以将它们塞进一个查询字符串中,但后来我丢失了性感的MVC URL,对吧?有没有更好的方法来声明处理程序方法,以便它处理未知数量的可选参数? 必须在Application Start上连接路由,这应该不是那么难.关键字的最大数量可以很容易地从数据库中确定,因此没有大问题. 谢谢! 解决方法
你可以使用像这样的catch-all参数:
routes.MapRoute("Category","category/{*keywords}",new { controller = "Category",action = "Search",keywords = "" }); 然后,您的搜索操作方法中将有一个参数: public ActionResult Search(string keywords) { // Now you have to split the keywords parameter with '/' as delimiter. } 以下是可能的URL列表,其中包含keywords参数的值: http://www.example.com/category(关键字:“”) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 向th添加一个类
- asp.net-core – 基于策略的授权可以更加动态吗?
- 图表 – 在Asp.net mvc中实施Google Analytics
- asp.net-mvc-3 – MVC3 = >> return EmptyResult()
- 如何追踪每一笔记录的来龙去脉:一个完整的Audit Logging解
- asp.net-mvc – 如何在ASP.NET MVC4中使用具有唯一标识符UR
- 处理ASP.NET MVC中的异步请求
- asp.net – 可以在.NET Framework和.NET Core之间共享的类库
- .net – 事件验证:允许__doPostBack用于一个控件和* any *
- IIS6中经典ASP的会话状态和垃圾回收