我可以在ASP.Net WebForms应用程序中使用ASP MVC(使用2种不同的编程语言!)

时间:2009-10-20 13:59:16

标签: asp.net-mvc

我们希望使用ASP.Net MVC框架来扩展(并逐步转换)我们“继承”的现有ASP.Net Webforms应用程序。我知道我们可以将MVC添加到Webforms项目中,但现有项目是用VB.Net编写的,我们更倾向于使用C#。

我们理想的解决方案是能够添加使用C#编写的控制器和使用C#编写的视图,但我不确定是否可行。

有没有人有任何想法我们如何才能实现这种语言和框架的混合?

2 个答案:

答案 0 :(得分:1)

将Webforms与MVC结合

这很容易possible,但几乎所有人都可能会说服你不要这样做因为迟早你会在一个更难以获得的地方结束出... ...

将C#与VB.net结合

这个会更难。如果您有一个 Asp.net网站项目设置,它几乎可以进行任何类型的语言组合。但是将它与MVC结合起来我不认为这是一个非常明智的想法 但是到目前为止你有一个 Web应用程序项目(参见comparison)我认为你不能以可维护的方式将C#与VB.Net结合起来(或者也许不是以任何方式)。至少你不能将C#代码放在你的web项目中的Controller文件夹中,因为你不能在一个程序集中混合语言。

运气好吗?

答案 1 :(得分:1)

看来我们可以实现我们想做的事情。只是为了看看发生了什么,我们尝试将测试MVC应用程序中其中一个视图顶部的语言声明从“VB”更改为“C#”并且(在关闭并在Visual Studio中重新打开文件后)似乎“只是工作”。因此,即使Web应用程序是VB.Net项目,我们也可以使用C#语法编写视图。

然后通过添加对单独的C#Controllers项目的引用,并将以下行添加到global.asax中的Application_Start()方法;

        ControllerBuilder.Current.DefaultNamespaces.Add("Controllers")

我们也可以在C#中编写所有MVC控制器。

我还没有尝试在我们真正的遗留Web应用程序中执行此操作,但我希望它能够让我们逐步将部分应用程序迁移到C#/ MVC解决方案。

希望没有人介意我回答我自己的问题!