我正在学习ASP.NET MVC作为非Web开发人员。我正在努力找到一个最适合用于应用程序的习惯用法,该应用程序的概念是选择一个“项目”来处理影响所有其他页面的第一页。
似乎有三种选择:
由于应用程序中的几乎所有URL都需要当前项目,这似乎有点过分,并且使构建任何视图中使用的URL更加有效。它还需要我验证每次调用的权限,因为用户可以轻松修改它。
关于最佳方法的任何建议 - 使用会话这么糟糕的主意?!
答案 0 :(得分:2)
你的选择2是我的选择
所以代替/ Products / 1 / Details
我会把它变成Project / 1 / Products / 1 / Details
它更符合REST。它几乎与MVC无关,但是如果你希望你的路由和URL像REST中的资源那样读取,你会希望url在斜杠处崩溃并进行状态。其他方法是在cookie中标记项目ID,但这会导致链接,因此当有人离开并返回时,它们会被放回去。
会话也很难测试你是否直接将自己绑定到这个概念。
答案 1 :(得分:1)
就个人而言,我只会使用会话。真的没有关于会话的非MVCish - 认为它只是你的模型的一部分。
使用cookie与使用会话没什么不同。将它嵌入到URL中并不是一个糟糕的选择,特别是对于“可链接性”,如果这是您的项目的一个问题。但它的副作用是混乱网址,并要求你不断地在页面之间传递该ID。