ASP.net MVC路由:使用QueryStrings是一种好的风格吗?

时间:2010-02-17 11:35:10

标签: .net asp.net-mvc routing

ASP.net MVC中的所有路由都应遵循“只有斜杠,没有QueryString”的理念吗?

我正在开发一个Wiki软件,所以我有像

这样的路线
/{pageTitle}
/{pageTitle/Edit
/{pageTitle/History

等。对于所有操作,但如果我想控制Action的行为怎么办?有点像

/{pageTitle}?noredirect=true

好还是被认为是不好的做法?如果是后者,还有更好的选择吗?我应该创建一个单独的路线

/{pageTitle}/NoRedirect

代替?

我认为它很干净,但是我再也没有写过一个复杂的MVC应用程序,它需要在之前将选项传递给动作:)

1 个答案:

答案 0 :(得分:9)

我相信对此没有明确的答案。

但对我来说,拥有控制器和放大器感觉更自然。 URL左侧的操作相关部分,并在QueryString中包含“可选”参数。

虽然很清楚;

  • /{pageTitle}会显示该文章,
  • /{pageTitle}/Edit将编辑artice,
  • /{pageTitle}/History将显示该artice的历史

/{pageTitle}/NoRedirect并没有真正响铃 但更明显的是/{pageTitle}?noredirect=true修改了行为的行为。

所以我会在你的情况下使用/{pageTitle}?noredirect=true