我的网站是用VB.NET和MVC 3.0(WebForms)编写的,但最近我们同意迁移到C#,因此任何新代码都是用C#编写的。但是,我们有足够的资源来完全迁移网站,其中很多仍然是VB.NET,包括主要的Web应用程序项目。
我真的想开始使用Razor视图,但是作为cshtml而不是vbhtml,因为我的感觉是以后很难迁移。但是,我无法在VB站点中看到这样做的方法。 Web App项目不允许使用C#,编辑文件将是一场噩梦,因为Intellisense不起作用。
我可以毫不费力地看到这样做的唯一方法是将所有VB代码从Web项目中移出到一个单独的VB.NET类库中,然后创建一个只包含视图文件的新C#web项目,将ASPX文件中的所有内联代码转换为C#。这仍然是一项重要的工作。
有人能想到更快的方式吗?
答案 0 :(得分:2)
您可以尝试将新的Razor文件放入单独的项目中,然后使用RazorGenerator将它们编译成“View Library”dll,然后您可以从现有项目中引用它。
我对RazorGenerator没有太多运气,但我只是将它用于模板功能。你的用例听起来更像它的设计,所以你不应该有任何问题。
答案 1 :(得分:0)
在2019年VS Express 2017中,似乎不需要任何额外的软件/插件就可以实现。在首先添加视图(.vbhtml)后,我将扩展名重命名为“ .cshtml”,并将所有视图代码从VB转换为C#,然后它就可以正常运行。
我在开发VB.net MVC应用程序时注意到丢失视图的错误也在寻找文件的'.cshtml'版本后,尝试了此操作。