是否可以将MVC“.Net framework 4.5”应用程序迁移到“ASP.NET MVC CORE”。

Is it possible to Migrate MVC “.Net framework 4.5” application to “ASP.NET MVC CORE”. If yes then how?

我在Visual Studio 2015中已有一个使用.NET Framework 4.5构建的MVC Web应用程序。现在我想要的是使用Visual Studio 2015将此应用程序迁移到新框架,即ASP.NET MVC核心,而不安装任何其他框架工具或其他东西。


是的,这是可能的。

1)创建与上一个项目同名的新空ASP.NET核心Web应用程序。所以名称空间是匹配的。

2)安装Microsoft.AspNetCore.MvcMicrosoft.AspNetCore.StaticFilesnuget包。ASP.NET运行时是模块化的,必须显式选择为静态文件提供服务

3)打开.csproj文件,添加PrepareForPublish目标:例如

1
2
  <Exec Command="bower install" />
</Target>

4)打开startup.cs文件并更改代码以匹配以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
namespace WebApp1
{
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
        }

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name:"default",
                    template:"{controller=Home}/{action=Index}/{id?}");
            });
        }
    }
}

5)添加控制器文件夹。然后将名为homecontroller.cs的MVC控制器类添加到控制器文件夹。

  • 添加视图文件夹。
  • 添加视图/主文件夹。
  • 将index.cshtml、mvc视图页添加到views/home文件夹。

对于中间测试,请执行以下操作

将views/home/index.cshtml文件的内容替换为以下内容:

2

6)从ASP.NET MVC项目迁移功能。我们需要移动以下内容:

  • 客户端内容(CSS、字体和脚本)
  • 控制器
  • 意见
  • 模型
  • 捆扎
  • 过滤器
  • 登录/注销,标识

7)将每个方法从ASP.NET MVC OldController复制到NewController

8)将about.cshtml、contact.cshtml和index.cshtml razor视图文件从ASP.NET MVC项目复制到ASP.NET核心项目。

9)运行ASP.NET核心应用程序并测试每个方法。

10)对于静态内容,将名为bower.json的bower配置文件添加到项目根目录(右键单击项目,然后添加>新项>bower配置文件)。将引导程序和jquery添加到文件中

11)将favicon.ico文件从旧的MVC项目复制到ASP.NET核心项目中的wwwroot文件夹。

12)将旧ASP.NET MVC项目的"视图"文件夹中的u viewsstart.cshtml文件复制到ASP.NET核心项目的"视图"文件夹中。ASP.NET Core MVC中的u viewstart.cshtml文件没有更改。

13)创建视图/共享文件夹。

14)将u layout.cshtml文件从旧的ASP.NET MVC项目的"视图/共享"文件夹复制到ASP.NET核心项目的"视图/共享"文件夹中。

15)通过以下新闻更改Razor视图中的一些旧功能

  • 元件替换@Styles.Render("~/Content/css")至加载bootstrap.css
  • 拆下@Scripts.Render("~/bundles/modernizr")。注释掉@Html.Partial("_LoginPartial")行(环绕与@*...*@)对齐。
  • 替换@Scripts.Render("~/bundles/jquery")。元素。
  • 元素。