我非常痴迷于语义,我想通过ASP.NET MVC的路由规则创建有意义的句子,这些规则在语义上描述了这个动作。例如,我想将文章分配给某些类别,为此,我想要这些网址:
/assign/article-name/to-categories
应该有这个规则:
assign/{articleName}/to-categories
和
/assign/article-name/to/category-title/category
应该有这个规则:
assign/{articleName}/to/{categoryTitle}/category
。
所需网址的一些示例如下:
assign/seo/to/computer/category
,或assign/how-to-drive-fast/to/general-knowledge/category
,或类似的网址。
问题在于,我在MVC路由方面不专业,我无法完成这项工作。请帮忙!
答案 0 :(得分: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 = seo
和categoryTitle = computer
。