2011-08-01 19 views
2

有没有人试过用Nuget打包整个ASP.NET MVC应用程序,并为他工作?我有一堆控制器,视图,帮助程序和实用程序,我想将其引入到另一个MVC项目中。使用Nuget打包ASP.NET MVC应用程序

问题是,路线不工作,我不知道他们是否应该。问题是,我们引入的软件包项目有它自己的global.asax.cs和它自己的路线。这与我们当前项目的global.asax及其路线如何结合?

所以,如果任何人有这样的包的经验,请回复。

回答

1

您应该尝试使用MVC区域功能来允许从多个位置注册路由。要查看看起来像什么,请右键单击一个MVC项目并选择添加/区域;然后查看创建的AreaRegistration文件。

更新:使用WebActivator提供了另一种在启动时执行代码而无需修改global.asax的方法。

+0

嘿大卫,我真的发现了你的WebActivator包,它允许我做我想要的东西 - 把我的路由注册放在Pre或Post start方法中,这取决于我需要什么。但是,只有一个问题,那就是与我们拉包的项目中已经存在的与global.asax.cs的交互。因为我们必须小心路由名称不会重复,因为那样我们就会在运行时得到“收集中的路由”错误。现在解决这个问题的唯一方法是在我的软件包中加上路由名称的前缀,或者你有另一个想法吗? – mare

+0

您确实需要确保路由名称是全球唯一的,否则MVC将炸毁。你可以有一个路由注册助手自动做前缀。在任何情况下,必须“分配”路线名称并不那么痛苦:) –

1

您的路线不会合并,因此您需要自行组合路线才能完成此项工作。如果你想让它们保持独立,你可以使用具有自己的路线的区域,但如果你只是拉入一堆控制器和视图,则需要在项目中编辑路线,以便它们在新应用程序中有意义。

相关问题