在路线mvc中发送空间

时间:2013-06-26 14:39:38

标签: ajax asp.net-mvc-3

我必须使用MVC3实现搜索,用户可以搜索任何单词或单词,现在如果我只写一个单词,它的工作正常,我的路线就像是 /搜索/玩具
我的控制器方法识别出玩具。

但是,如果我想搜索像'小孩玩具'这样的空间,那么路线会有一个空格,而在我的控制器方法中,它不会将其识别为单词并抛出如下的错误 /搜索/孩子%20toy

有没有人在他的项目plz帮助中实现这样的事情。

提前致谢。

1 个答案:

答案 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