ASP.net MVC中的所有路由是否应遵循“仅斜线,无QueryString”的哲学?
我正在使用Wiki软件,所以我有如下路线
/{pageTitle}
/{pageTitle/Edit
/{pageTitle/History
等所有动作,但是如果我想控制动作的行为怎么办?是这样的
/{pageTitle}?noredirect=true
好还是认为是不好的做法?如果是后者,还有更好的选择吗?我应该创建一条单独的路线吗
/{pageTitle}/NoRedirect
代替?
我认为这很干净,但是我再也没有写过一个复杂的MVC应用程序,该应用程序需要在操作之前将选项传递给动作:)
最佳答案
我相信对此没有确切的答案。
但是对我来说,在URL的左侧仅包含与控制器和操作相关的部分,并在QueryString中具有“可选”参数,这感觉更自然。
很明显,/{pageTitle}
将显示该文章,/{pageTitle}/Edit
将编辑该artice,/{pageTitle}/History
将显示该动脉的历史/{pageTitle}/NoRedirect
并没有真正敲响警钟。
但是,更明显的是/{pageTitle}?noredirect=true
修改了动作的行为。
因此,在您的情况下,我会选择/{pageTitle}?noredirect=true
。