You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将ASP.NET应用迁移至.NET Core是否必须使用MVC?

是否必须使用MVC才能将ASP.NET应用迁移至.NET Core?

完全不需要。你的简单应用(3个页面+存储过程调用)完全可以用更轻量、更贴合小项目的方案,比如Razor Pages,甚至纯静态页面配合后端接口的方式,没必要强行套MVC的三层架构。

下面是适合你场景的手动迁移步骤(避开迁移助手,全程可控):

  • 创建基础Razor Pages项目
    直接新建一个.NET Core Razor Pages项目,这种结构比MVC简洁得多,没有Controller、Model、Views的强制拆分——每个页面对应一个.cshtml(视图)和.cshtml.cs(后端逻辑),和你原应用的简单页面模式更匹配。

  • 迁移页面内容
    把原ASP.NET页面的HTML代码复制到新的.cshtml文件里,替换掉WebForms专属控件(比如<asp:TextBox>)为标准HTML元素,原页面的事件逻辑(比如按钮点击)可以移到.cshtml.cs的后台方法中,用OnGetAsync/OnPostAsync处理GET/POST请求。

  • 迁移存储过程调用
    原应用的存储过程调用逻辑几乎可以直接复用,推荐用Microsoft.Data.SqlClient或者轻量的Dapper来实现:

    1. 安装对应NuGet包(比如Dapper或Microsoft.Data.SqlClient)
    2. 在appsettings.json中配置数据库连接字符串
    3. 在页面的后台类中注入IConfiguration获取连接字符串,然后编写调用代码:
      using (var conn = new SqlConnection(_configuration.GetConnectionString("YourDbConn")))
      {
          // 调用存储过程获取数据
          var data = await conn.QueryAsync<YourDataModel>("GetUserData", commandType: CommandType.StoredProcedure);
          // 调用存储过程更新数据
          await conn.ExecuteAsync("UpdateUserData", new { Id = 1, Name = "NewName" }, commandType: CommandType.StoredProcedure);
      }
      
  • 配置服务和中间件
    在Program.cs中确保添加了Razor Pages支持和必要的服务:

    // 注册Razor Pages服务
    builder.Services.AddRazorPages();
    // 可选:注册数据库连接,方便依赖注入
    builder.Services.AddScoped<IDbConnection>(sp => 
        new SqlConnection(builder.Configuration.GetConnectionString("YourDbConn")));
    

    然后在中间件管道中启用Razor Pages:

    app.MapRazorPages();
    
  • 测试验证
    逐个测试页面的展示和数据操作,调整页面路由、表单提交逻辑等,确保和原应用行为一致。

补充:如果你的原应用是WebForms,Razor Pages的代码后置模式和WebForms更接近,迁移成本比MVC低很多,而且手动迁移的过程能让你完全理解每一步的变化,符合你不想用迁移助手的需求。

内容的提问来源于stack exchange,提问作者Adrev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:24:59