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

时间:2014-11-04 12:32:42

标签: c# asp.net-mvc vb.net razor webforms

我们目前有一个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#/ razor mvc中重写的按钮,我该如何加载/指导用户并在Web表单中呈现剃刀视图。

我可以在网页表格中渲染剃刀视图吗?

如果没有,我可以直接转到新标签吗?

任何想法如何做到这一点?

由于

1 个答案:

答案 0 :(得分:0)

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

我们试图摆脱WebForms部分。

我提出的策略是:

  1. 在解决方案中将所有逻辑从WebForms获取到BL层
  2. 使用MVC + Razor Partial Views替换所有不需要回发结果的模态对话框。 通过AJAX这很容易做到。在您的WebForm可点击元素中:
  3. OnClientClick='<%# "showEntityList("+Eval("Id")+"); return false;" %>'

    进行ajax调用的js代码(我在此函数后面使用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 View。

    1. 当MVC部分视图替换所有简单部件时,我最后使用RazorView重新创建WebForm。
    2. 如果你想要一个新标签,你也可以使用js:

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