我必须使用MVC3实现搜索,用户可以搜索任何单词或单词,现在如果我只写一个单词,它的工作正常,我的路线就像是
/搜索/玩具
我的控制器方法识别出玩具。
但是,如果我想搜索像'小孩玩具'这样的空间,那么路线会有一个空格,而在我的控制器方法中,它不会将其识别为单词并抛出如下的错误 /搜索/孩子%20toy
有没有人在他的项目plz帮助中实现这样的事情。
提前致谢。
答案 0 :(得分:0)
看起来你有一个名为“玩具”的动作。
// maps to /search/
public class Search : Controller
{
// maps to /search/toy
public ActionResult Toy()
{
}
}
如果您根本没有修改默认路由,则需要使用{controller} / {action} / {id}。 (当然,如果你想做不同类型的路线,你将不得不考虑路由。请谷歌搜索ASP.NET MVC路由)
这是最快捷的方式:
// maps to /search
public class Search : Controller
{
// maps to /search/for/{id}
public ActionResult For(string id)
{
// search for id
}
}
可以用作/ search / for / kids%20toy。
或者您可以将querystring用于名为else而不是id的参数。
// maps to /search
public class Search : Controller
{
// maps to /search/ by default, check route config
public ActionResult Index(string query)
{
// search for query
}
}
为了能够使用{controller} / {action} / {query}或{controller} / {query},你必须创建一个路由,但你可以通过 /搜索/?查询=孩子%20toy