在多个.net Web项目中使用母版页和用户控件

时间:2011-05-25 18:37:44

标签: asp.net asp.net-mvc

我知道这里已经多次询问过这种问题,但我真的在寻找一种可靠的方法来跨多个Web项目共享主页和用户控件。这样做的原因是我们当前的Web应用程序只是一个webform项目,但已经失去控制。出于各种原因,我们确实需要将此单个Web项目拆分为多个Web项目。但是,当我们尝试本网站上提到的各种方法(例如嵌入式资源,预编译等等)时,我们总是会在visual studio和松散的智能感知中遇到警告。我们还研究了使用源代码控制作为共享可重用控件的方法,但我们真的希望避免这种反模式。

总体而言,大型开发团队如何有效地将单个.net Web项目(webform或mvc)拆分为多个Web项目并共享可重用控件(masterpages,用户控件,图像,css,js等...) Visual Studio中的完整智能感知?对此有任何见解表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

我同意jfar的说法,你的问题非常广泛,并且没有很好地解释你认为你回答的东西会有所不同,但无论如何我都会尝试回答。

User Controls并非旨在在项目或不同的应用程序之间共享。它们允许您为特定应用程序组合通用功能,其中项目外部重用的情况很小(例如,项目下拉框允许管理员在各种页面上选择不同的属性)。

如果您需要可以轻松跨越多个项目的可重用控件,则应使用Server Controls。这将允许您创建和编译控件为.dll,它们可以在项目之间重用。

如果您确实需要在多个位置重用相同的控件,则应该探索预编译并打包到Server Controls提供的.dll解决方案中。这允许维护任务在单个.dll周围固化,可以加盖版本,并且随着时间的推移更容易跟踪。

说到母版页。您可以embed the Master Page file进入可以在多个项目之间共享的.dll。由于ASP.NET支持nested Master Pages,因此您应该能够嵌入核心母版页,同时保持对不同项目中的更改开放。

如果这个答案没有帮助,那么你必须更明确地说明它们不起作用或使它们不值得追求。问题越清楚答案就越好。