【问题标题】:Is it possible to Migrate MVC ".Net framework 4.5" application to "ASP.NET MVC CORE". If yes then how? [closed]是否可以将 MVC“.Net framework 4.5”应用程序迁移到“ASP.NET MVC CORE”。如果是,那怎么办? [关闭]
【发布时间】:2017-04-07 06:56:41
【问题描述】:

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

【问题讨论】:

标签: asp.net-mvc asp.net-core asp.net-core-mvc .net-4.5 asp.net-4.5


【解决方案1】:

是的,这是可能的。

1) 创建一个新的空 ASP.NET Core Web 应用,其名称与上一个项目相同。所以命名空间会匹配。

2) 安装 Microsoft.AspNetCore.Mvc 和 Microsoft.AspNetCore.StaticFiles NuGet 包。 ASP.NET 运行时是模块化的,您必须明确选择提供静态文件

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

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

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

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)添加一个Controllers文件夹。然后将名称为HomeController.cs的MVC控制器类添加到Controllers文件夹中。

  • 添加视图文件夹。
  • 添加 Views/Home 文件夹。
  • 将 Index.cshtml、MVC 视图页面添加到 Views/Home 文件夹。

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

将 Views/Home/Index.cshtml 文件的内容替换为以下内容:

<h1>Hello world!</h1>

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

  • 客户端内容(CSS、字体和脚本)
  • 控制器
  • 观看次数
  • 型号
  • 捆绑
  • 过滤器
  • 登录/注销、身份

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

8) 将 About.cshtml、Contact.cshtml 和 Index.cshtml Razor 视图文件从 ASP.NET MVC 项目复制到 ASP.NET Core 项目。

9) 运行 ASP.NET Core 应用并测试每个方法。

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

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

12) 将旧 ASP.NET MVC 项目的 Views 文件夹中的 _ViewStart.cshtml 文件复制到 ASP.NET Core 项目的 Views 文件夹中。 _ViewStart.cshtml 文件在 ASP.NET Core MVC 中没有改变。

13) 创建一个 Views/Shared 文件夹。

14) 将 _Layout.cshtml 文件从旧 ASP.NET MVC 项目的 Views/Shared 文件夹复制到 ASP.NET Core 项目的 Views/Shared 文件夹中。

15) 更改 razor 视图中的一些旧功能,包括以下新闻

  • 将@Styles.Render("~/Content/css") 替换为&lt;link&gt; 元素 加载bootstrap.css
  • 删除@Scripts.Render("~/bundles/modernizr")。 注释掉 @Html.Partial("_LoginPartial") 行(围绕 与@*...*@)一致。
  • 将@Scripts.Render("~/bundles/jquery") 替换为&lt;script&gt; 元素。
  • 将@Scripts.Render("~/bundles/bootstrap") 替换为 &lt;script&gt; 元素。

【讨论】:

  • @orhun.begendi- 根据您的回答,是否有必要将“ASP.NET Core”框架安装到 VS15 中或 nuget 可以提供帮助?
  • @AkshayChawla 您至少需要带有 .net 核心的 vs2015。或者你需要 VS 2017。你还需要 dotnet core 框架来迁移到 asp.net core。
  • @orhun.begendi- 谢谢你的回答。会看的。
  • @orhun.begendi- 我被困在第 2 点。从 nuget 安装“Microsoft.AspNetCore.StaticFiles”包时出错。
  • @orhun.begendi- 如果我从第 2 点跳过安装“Microsoft.AspNetCore.StaticFiles”包并继续前进,那么我会卡在第 4 点。在以下行中出现错误:-loggerFactory.AddConsole(); -app.UseDeveloperExceptionPage(); -app.UseStaticFiles();
猜你喜欢
  • 2015-08-20
  • 2020-09-26
  • 2022-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多