📅  最后修改于: 2020-11-21 04:54:45             🧑  作者: Mango
在本章中,我们将在FirstAppDemo应用程序中设置MVC框架。我们将在ASP.NET Core(更具体地说,ASP.NET Core MVC框架)的顶部构建一个Web应用程序。从技术上讲,我们可以仅使用中间件来构建整个应用程序,但是ASP.NET Core MVC为我们提供了可轻松创建HTML页面和基于HTTP的API的功能。
要在我们的空项目中设置MVC框架,请遵循以下步骤-
安装Microsoft.AspNet.Mvc程序包,该程序包使我们可以访问框架提供的程序集和类。
安装软件包后,我们需要在运行时注册ASP.NET MVC所需的所有服务。我们将在ConfigureServices方法中执行此操作。
最后,我们需要为ASP.NET MVC添加中间件以接收请求。本质上,该中间件采用一个HTTP请求,并尝试将该请求定向到我们将要编写的C#类。
步骤1-让我们通过右键单击“管理NuGet软件包”转到NuGet软件包管理器。安装Microsoft.AspNet.Mvc程序包,该程序包使我们可以访问框架提供的程序集和类。
步骤2-一旦安装了Microsoft.AspNet.Mvc程序包,我们需要在运行时注册ASP.NET Core MVC所需的所有服务。我们将使用ConfigureServices方法执行此操作。我们还将添加一个简单的控制器,我们将看到该控制器的一些输出。
让我们向该项目添加一个新文件夹,并将其命名为Controllers 。在此文件夹中,我们可以如下所示在“解决方案资源管理器”中放置多个控制器。
现在,右键单击Controllers文件夹,然后选择Add→Class菜单选项。
步骤3-在这里我们要添加一个简单的C#类,并将其称为HomeController ,然后单击“添加”按钮,如上面的屏幕截图所示。
这将是我们的默认页面。
步骤4-让我们定义一个公共方法,该方法返回一个字符串并调用该方法的Index,如以下程序所示。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace FirstAppdemo.Controllers {
public class HomeController {
public string Index() {
return "Hello, World! this message is from Home Controller...";
}
}
}
步骤5-当您转到网站的根目录时,您想查看控制器的响应。截至目前,我们将提供index.html文件。
让我们进入网站的根目录并删除index.html。我们希望控制器响应而不是index.html文件。
步骤6-现在转到Startup类中的Configure方法,并添加一块UseMvcWithDefaultRoute中间件。
步骤7-现在刷新网站根目录下的应用程序。
您将遇到500错误。该错误表明该框架无法找到所需的ASP.NET Core MVC服务。
ASP.NET Core Framework本身由职责非常集中的不同小组件组成。
例如,有一个组件必须找到并实例化控制器。
该组件必须位于服务集合中,ASP.NET Core MVC才能函数运行。
步骤8-除了添加NuGet软件包和中间件,我们还需要在ConfigureServices中添加AddMvc服务。这是Startup类的完整实现。
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;
namespace FirstAppDemo {
public class Startup {
public Startup() {
var builder = new ConfigurationBuilder() .AddJsonFile("AppSettings.json");
Configuration = builder.Build();
}
public IConfiguration Configuration { get; set; }
// This method gets called by the runtime.
// Use this method to add services to the container.
// For more information on how to configure your application,
// visit http://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services) {
services.AddMvc();
}
// This method gets called by the runtime.
// Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app) {
app.UseIISPlatformHandler();
app.UseDeveloperExceptionPage();
app.UseRuntimeInfoPage();
app.UseFileServer();
app.UseMvcWithDefaultRoute();
app.Run(async (context) => {
var msg = Configuration["message"];
await context.Response.WriteAsync(msg);
});
}
// Entry point for the application.
public static void Main(string[] args) => WebApplication.Run(args);
}
}
步骤9-保存Startup.cs文件,然后转到浏览器并刷新它。您现在将收到我们家庭控制器的回复。