我有点困惑我应该如何处理单个和多个路由和控制器在我的Web应用程序。
网站是一个简单的报价网站 – 认为爱因斯坦,莎士比亚等不是保险。在项目中我有一个名为`QuoteController’的控制器。控制器名称是单数,这是否意味着控制器只能处理单引号的显示? I.E.
/quote/love-is-a-battlefield-1
然后我需要另一个控制器来显示多个引号(复数)?例如:
/quotes/ (would default to most recent) /quotes/new /quotes/shakespeare /quotes/popular
单独和复数路由的单独控制器是惯例还是惯例?我希望这是有道理的。
解决方法
只是因为asp-mvc的默认控制器有单数名称,这并不意味着你应该为所有的控制器实现单数形式。
正确的答案是:这取决于您的控制器所代表的实体的数量。
单一的例子,AccountController是单数的,因为它代表与单个帐户有关的动作(动作方法)。
多个如果您的控制器包含至少一个在单个事务处理多个实体的操作方法。
示例复数格式
users/update/3
上面的路线使您认为您正在编辑所有用户,如果您像一个句子一样阅读它,这是没有意义的。但是,如果您像查询一样读取路由,则会更有意义。
如果我们考虑,路由是一个查询:{entities} / {action} / {parameter}看起来像是对我的查询。
users / update / 123读取“从用户表更新单个实体”
主要网站使用复数格式,请参见下面的示例
stackoverflow.com/questions <- list of questions (multiple) stackoverflow.com/questions/18570158 <- individual question (single) stackoverflow.com/questions/ask <- new question (single) stackoverflow.com/users <- display list of users (multple) stackoverflow.com/users/114403 <- individual user (single) asp.net/mvc/tutorials <- display list of tutorials (multiple) asp.net/mvc/tutorials/mvc-5 <- individual tutorial (single) facebook.com/messages/ <- Display list of messages (multiple) facebook.com/messages/new <- Create a single message (single) facebook.com/messages/john <- view individual messages (multiple)
我认为英文语法应该在每个程序设计方面都被严格地纳入。它读取更自然,并导致良好的守则卫生。