2011-07-09 26 views
0

我非常执着于语义,我想通过ASP.NET MVC的语义描述动作的路径规则创建有意义的句子。例如,我想分配给条某些类别,要做到这一点,我想有以下网址:使用ASP.NET MVC创建句子

/assign/article-name/to-categories

应该有这样的规则:

assign/{articleName}/to-categories

/assign/article-name/to/category-title/category

应该有这样的规则:

assign/{articleName}/to/{categoryTitle}/category

期望的URL的一些实例是:

assign/seo/to/computer/category,或assign/how-to-drive-fast/to/general-knowledge/category或网址这样。

问题是,我不是专业的MVC路由,我不能做这个工作。请任何帮助!

回答

3

以下路由定义应该工作:

routes.MapRoute(
    "Assign", 
    "assign/{articleName}/to/{categoryTitle}/category", 
    new { controller = "Articles", action = "Assign" } 
); 

,你将有一个ArticlesController

public class ArticlesController : Controller 
{ 
    public ActionResult Assign(string articleName, string categoryTitle) 
    { 
     // TODO: handle the assigning 
     return Content(string.Format("{0} {1}", articleName, categoryTitle), "text/html"); 
    } 
} 

现在例如下面的请求assign/seo/to/computer/category将被路由到Assign作用,这将传递articleName = seocategoryTitle = computer