【问题标题】:Where to put user specific stuff - url structure在哪里放置用户特定的东西 - url 结构
【发布时间】:2013-06-01 19:13:54
【问题描述】:

在我的所有项目中,我都有 UserController 用于显示每个用户的个人资料,并且只有一个操作,如下所示:

public ActionResult Index(int id, string username)

但我不确定我会将特定于当前用户的内容放在哪里,例如:

QuestionsController
AnswersController

选项 1

我是否应该像这样在每个控制器下添加一个动作:

public ActionResult My()

看起来像:

/questions/my 
/answers/my 

选项 2

我添加控制器 MyController 和操作问题和答案,然后我得到类似:

/my/questions
/my/answers

选项 3

我将这些操作添加到我的用户控制器中,所以我得到如下内容:

/user/questions/1/exampleuser/
/user/answers/1/exampleuser/

哪一个最容易维护并且对用户来说最自然?

【问题讨论】:

  • @Anon 问题的哪一部分你不明白?

标签: c# asp.net-mvc


【解决方案1】:

在网址方面

选项 2 感觉很自然,因为您要获取的是特定于帐户的信息。选项 3 不错,但很笨拙。绝对不是选项 1。

我理解您对在选项 2 中使用单个控制器的担忧。事实上,您仍然可以拥有 QuestionController 和 AnswerController,并使用路由规则 (1) 来保留选项 2 提供的漂亮 url。

【讨论】:

  • 这也是我的两难选择 :) 选项一的优势在于 IMO 易于维护,因为您只需为每个控制器添加一个额外的操作,在选项 2 和 3 中您将有很多操作,取决于用户可以添加和查看的内容。
  • 选项 1 的另一个优点是 DRY 视图,因为您可以重用索引视图。 2 如果我想走那条路,本地化会很痛苦
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-01
  • 2014-12-20
  • 1970-01-01
  • 2017-07-09
  • 1970-01-01
相关资源
最近更新 更多