2015-09-06 106 views
1

我已经使用代码先创建了一个项目。如何根据网站用户创建单独的视图

我想要创建两个单独的路线与单独的布局和共享数据库。并通过提供单独的启动链接并使用用户身份识别[Authorize]来管理分离,以帮助控制哪些用户可以访问哪些链接。

这也提供了在Intranet上呈现员工网站的机会。

但是我不希望消费者能够查看这些链接。所以我将视图和控制器分开。

例如:
1.如果雇员访问该网站,索引主页将是AdminIndex,使用_AdminLayout
2.如果客户在访问网站时,它会使用_Layout

folders

我敢肯定有更好的方法可以做到这片土地上的Index
在一个项目中包装它是否可行?还是分开它们会更好,在这种情况下,我不确定如何共享数据库。

回答

2

这是在同一解决方案中的多个项目尖叫。有多远,你把它之后取决于项目的大小和您的特定需求,但最起码​​,可以考虑沿着以下线的东西:

SolutionName 
- SolutionName.Admin 
- SolutionName.DAL // Data Access Layer (DAL) 
- SolutionName.Frontend/Web 

的DAL项目的目的是集中您的数据相关问题集中在一个地方,您将从其他两个项目中参考。您可以进一步采取lot,具体取决于您正在处理的内容的大小和复杂程度,但上述内容对于较小的项目来说是一个很好的起点。

通过上述操作,您将使代码自然更清洁,更易于测试和维护,因为您不会在整个代码中散布条件检查来确定某人是否是管理员。

+0

谢谢,我正在学习。这是有道理的。这是我在一个功能齐全的网站上的第一次尝试。所以我很欣赏这些反馈。虽然我在学习,但课程时间并不总是与我的需求相匹配。 –

+0

@Heyyou没问题 - 我们都还在学习。 :)我记得当我第一次出场时,这对我来说并不是特别清楚,但在这里有一个很好的例子,说明为什么多个项目和分层解决方案可以有用。如果你对它真的可以采取多大措施感到好奇,那么通过[this](https://msdn.microsoft.com/en-us/library/ff650706.aspx)进行阅读是值得的。特别是,第5-9章介绍了分层的概念。当然还有其他的消息来源,但它无疑会给你以后的研究。 –

+0

谢谢约翰,我会做的。完成后将参加MS认证考试,因此所有的帮助都会变得更好。 –