这是一个ASP.NET MVC初学者问题(我正在开发NerdDinner)...我已经分配了创建ASP.NET MVC cms(有自己的设计)和门户(也是它自己的设计)将显示由CMS处理的数据。我想知道我是否必须在Visual Studio中制作两个单独的项目,否则我将不得不使用一个项目并将门户网站部分放在特定文件夹中。
我知道我的问题有点为时过早(事实上我还没有完成教程)但我有点不耐烦了:)
在服务器(商业主机)上我只会使用一个主机帐户......这个带URL路由的东西对我来说有点混乱,CMS实际上也针对SEO进行了优化。
我想将URL的结构设为:
----门户----
www.domain.com
www.domain.com/Menu1/Submenu1
www.domain.com/Menu2/Submenu1/SubSubmenu1 ...
等
---- CMS ----
www.domain.com/CMS
www.domain.com/CMS/Whatever
谢谢,
ILE
答案 0 :(得分:2)
这一切都取决于门户网站和MVC cms的功能。
对于初学者,我会为模型/数据访问提供单独的解决方案,这样您就可以拥有尽可能多的MVC项目而无需重复数据访问。
从您想要的网址结构中,我可能会将CMS作为单独的控制器和子文件夹。或者,如果您使用MVC 2,您可以查看区域支持,这可能会给您更多的灵活性。
如果您希望解决方案更复杂/更灵活,您可以选择以下方法:
如果门户网站和MVC cms都具有相同的功能和页面布局,则您有两个母版页并确定返回视图时要显示的母版页面。您可以在路由中指定它,以便多个路由指向不同的控制器。
如果布局/功能稍有不同,但是一个控制器仍然可以管理两个,你可以拥有一个单独的控制器项目和两个仅包含视图,javascript和图像的mvc项目,因此两个mvc解决方案都会查看你的控制器解决方案。使用此选项,您可能最终在您的域上设置两个网站,一个位于根目录下,另一个位于CMS文件夹下(在您的MVC应用程序中,您将需要阻止路由到/ CMS,因此它将由您的CMS应用程序处理)。
最后,如果两者各有不同,有两个独立的项目,但保留您的公共数据访问项目,如上所述,您可能需要在托管包上设置两个站点。