逐步将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表单中呈现剃刀视图。
我可以在网络表单中呈现剃刀视图吗?
如果不能,我可以直接转到一个新的选项卡吗?
有什么办法吗?
感谢
我目前在同一个hubryd项目中工作,我有WebForm部分和MVC部分。
我们试图去掉WebForms部分。
我提出的策略是:
- 获取解决方案中从WebForms到BL层的所有逻辑
- 用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视图部分。
- 当所有简单的部分都被MVC局部视图替换时,我所做的最后一件事是用RazorView重新放置WebForm
如果你想要一个新的选项卡,你也可以使用js:
function ShowInNewTab(path) {
window.open(SiteAppRootPath + path, '_blank');
}