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

10-04 20:27