逐步将WebForm VB Web应用程序转换为MVC C#

本文关键字:程序转换 MVC 应用 Web WebForm VB | 更新日期: 2023-09-27 18:28:58

我们目前有一个vb web表单应用程序,我们希望将其迁移到C#MVC。我们希望一次移动一个项目,而不是完全重写。

我知道有可能有一个webforms和mvc的混合项目,详细如下:

http://blog.falafel.com/integrating-aspnet-mvc-4-into-existing-web-forms-applications/

但我遇到的问题是,如果web应用程序的外部页面仍然是vb/asp.net web表单,那么当用户点击一个区域(即在c#/rarzormvc中重写的按钮)时,我如何加载/引导用户并在web表单中呈现剃刀视图。

我可以在网络表单中呈现剃刀视图吗?

如果不能,我可以直接转到一个新的选项卡吗?

有什么办法吗?

感谢

逐步将WebForm VB Web应用程序转换为MVC C#

我目前在同一个hubryd项目中工作,我有WebForm部分和MVC部分。

我们试图去掉WebForms部分。

我提出的策略是:

  1. 获取解决方案中从WebForms到BL层的所有逻辑
  2. 用MVC+Razor局部视图替换所有不需要返回结果的模态对话框。这真的很容易通过AJAX实现。在您的WebForm可点击元素中:

OnClientClick='<%# "showEntityList("+Eval("Id")+"); return false;" %>'

js代码进行ajax调用(我在这个函数后面使用jquery对话框):

function showEntityList(Id) {
    dialogSaveCancel(
        {
            title: "Entity List",
            urlPost: '/ControllerName/ControllerMethodName?id=' + Id,
            callback:
                {
                    success: function (data, textStatus, jqXHR) {
                        var url = 'test';
                        window.location.replace(url);
                    },
                    error: function () { }
                }
        });
};

因此,您可以在WebForms中获得Razor视图部分。

  1. 当所有简单的部分都被MVC局部视图替换时,我所做的最后一件事是用RazorView重新放置WebForm

如果你想要一个新的选项卡,你也可以使用js:

function ShowInNewTab(path) {
    window.open(SiteAppRootPath + path, '_blank');
}