2016-06-11 115 views
0

我使用这个路由过滤ASP.Net MVC 5路由通配符查询字符串+

[Route("search/{*segments}")] 

这需要所有我所提供的部分可能是很多。

下面是一个例子

http://localhost:50877/search/c_50_showcases%5E-displays/a_brand-name:33113319_balt:1623762%7Cmooreco:1672386/a_total-number-of-shelves:33111115429_5:3138:lt/so_ts 

现在我还需要查询字符串这条路,但我无法使它工作。

http://localhost:50877/search/?query=HP%20DesignJet&items=HEW51645A|ELI75220 

它给我403错误。

Web服务器被配置为不列出该目录

我怎么能做出可以采取通配符和查询字符串处理传入的请求路由的内容。我必须在Route中使用search

我也试图与这个

http://localhost:50877/search/test?query=HP%20DesignJet&items=HEW51645A|ELI75220 

它的工作原理,但这种效应的SEO。

+0

参见[Web服务器配置为不列表这个目录的内容](http://stackoverflow.com/a/32143133/181087) – NightOwl888

回答

1

定义动作和路线是这样的:

[System.Web.Mvc.Route("search/{*segments}")] 
public ActionResult Search(string segments, string query, string items) 

允许获得通配符(细分变量),还可以查询字符串参数(查询和物品)

+0

这给我403错误 –

+0

你有你的项目中的“搜索”目录吗? –

+0

是的,这和你发布的代码完全一样 –