asp.net-mvc – 搜索页面MVC路由(隐藏动作,没有斜线,如SO)
发布时间:2020-12-16 03:51:53 所属栏目:asp.Net 来源:网络整理
导读:我希望我的搜索类似Stack Overflow中的搜索(即没有动作,没有斜线): mydomain.com/search -- goes to a general search page mydomain.com/search?type=1q=search+text -- goes to actual search results 我的路线: routes.MapRoute( "SearchResults","Sear
我希望我的搜索类似Stack Overflow中的搜索(即没有动作,没有斜线):
mydomain.com/search --> goes to a general search page mydomain.com/search?type=1&q=search+text --> goes to actual search results 我的路线: routes.MapRoute( "SearchResults","Search/{*searchType}",--> what goes here??? new { action = "Results" } ); routes.MapRoute( "SearchIndex","Search",new { action = "Index" } ); 我的SearchController有以下动作: public ActionResult Index() { ... } public ActionResult Results(int searchType,string searchText) { ... } 搜索结果路线不起作用.我不想使用每个人似乎都在使用的“… / …”方法,因为搜索查询不是资源,所以我希望查询字符串中的数据如我所指出的那样,没有斜线 – 就像SO一样. TIA!马特 解决方法
您不需要两个路由,因为您将搜索参数作为查询字符串提供.只需一条搜索路线:
routes.MapRoute( "Search",new { controller = "Search",action = "Search" } ); 然后编写此控制器操作 public ActionResult Search(int? type,string q) { var defaultType = type.HasValue ? type.Value : 1; if (string.IsNullOrEmpty(q)) { // perform search } // do other stuff } 这种方法的主体在很大程度上取决于搜索条件,当你搜索东西时你是否需要这两个参数,或者你是否有类型的默认值.请记住,页面索引可以以相同的方式完成. 使用强类型参数(验证明智) 您当然可以创建一个可以验证的类,但属性名称应该反映查询字符串的类.所以你要么上课: public class SearchTerms { public int? type { get; set; } public string q { get; set; } } 并使用与现在同样命名的查询变量相同的请求,或者使用干净的类并调整您的请求: public class SearchTerms { public int? Type { get; set; } public string Query { get; set; } } http://domain.com/Search?Type=1&Query=search+text (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 未在生产服务器中的WCF调用上传递凭据
- asp.net – 如何在mvc中使用多个选择4?
- asp.net-mvc – 无法让defaultRedirect工作
- asp.net-mvc – 如何使用ViewBag创建一个下拉列表?
- ASP.net页面在import语句中获取错误,但我有参考的地方吗?
- asp.net-core – MVC 6安装为Windows服务(ASP.NET Core 1.0
- Asp.Net何时删除过期的缓存项?
- asp.net – 表单身份验证值得学习吗?它可以用于拥有大量流
- asp.net-mvc – ASP.NET MVC – 如何从引用的类库中的类创建
- 向ASP.NET Gridview添加动态列
推荐文章
站长推荐
- asp.net-mvc-4 – MVC 4 – Web Api和JSON?
- ASP.NET Core 中基于策略的授权
- asp.net-mvc-4 – 从ASP.NET MVC Web API返回400
- asp.net-mvc – 如何在ASP.NET MVC和Entity Fram
- asp.net-mvc – ASP.NET MVC验证ViewState MAC失
- asp.net-mvc – 如何实现在jqgrid搜索?
- asp.net – 如何在按下键盘上的“输入”键时将焦
- 将图表绘制到ASP.NET MVC 4(Razor,C#)网站
- asp.net-mvc – 如何在javascript文件中使用资源
- asp.net-mvc – Kendo UI Grid – 显示行号
热点阅读