asp.net core轻松入门之MVC中Options读取配置文件

简介: 接上一篇中讲到利用Bind方法读取配置文件 ASP.NET Core轻松入门Bind读取配置文件到C#实例 那么在这篇文章中,我将在上一篇文章的基础上,利用Options方法读取配置文件 首先注册MVC服务并添加MVC路由 注册MVC的方法是在ConfigureServices中添加   services.

接上一篇中讲到利用Bind方法读取配置文件

ASP.NET Core轻松入门Bind读取配置文件到C#实例

那么在这篇文章中,我将在上一篇文章的基础上,利用Options方法读取配置文件

首先注册MVC服务并添加MVC路由

注册MVC的方法是在ConfigureServices中添加

 

 services.AddMvc();

添加MVC路由的方法是在Configure中添加

 

 

  app.UseMvcWithDefaultRoute();

然后在项目中添加Controllers文件夹和Views文件夹,然后在Controllers文件夹中添加home控制器 ,方法是在该文件加有几-》添加-》控制器

 

选择MVC控制器,并给该控制器命名为HomeControllers   控制器是必须以Controllers结尾的

然后选中控制器中的Index方法  右键菜单,选择添加视图,不要勾选,使用模板页,因为我们是一个空项目,没有模板的

加入视图后,回到home控制器,添加Class实例并利用HomeController的构造函数给该实例赋值,注意,就是在此处使用到了Options方法

 

private Class myClass;

        public HomeController(IOptions<Class> myClass)
        {
            this.myClass = myClass.Value;
        }
然后修改Index方法,将myClass实例传递给视图。

 

 

  public IActionResult Index()
        {
            return View(myClass);
        }

回到Index视图中,在文件的顶部指定model的类型为 Class类型,然后利用html代码进行输出。

 

 

@model BindReader.Class
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<h2>@Model.Name</h2>
@foreach (var item in Model.Items)
{
    <div>
        <h2>@item.Language</h2>
        <h2>@item.Tool</h2>
    </div>
}
<body>
</body>
</html>

最后,回到StartUp.cs  进行Class的依赖注入,注入的方法是在ConfigureServices添加以下代码,因为系统会自动读取appsettings.json中的信息,其内的具体内容在上一文章中有介绍。

 

 

 services.Configure<Class>(Configuration);

 

最后,我们需要吧Configure中的app.Run方法进行注释,因为该方法会阻塞管道,影响mvc的正常工作。


最后,可以运行查看效果了。


其实还有不需要在home控制器中利用构造函数引入myClass的方法,我们可以直接在利用Options方法读取Class信息,需要将home控制器中构造函数中的代码注释,删除Index 方法中Return View(myClass)的myClass  因为此时myClass是空的。

然后Index控制器中修改后的代码如下:

 

@using BindReader
@using Microsoft.Extensions.Options
@inject IOptions<Class> classAccess
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<h2>@classAccess.Value.Name</h2>
@foreach (var item in classAccess.Value.Items)
{
    <div>
        <h2>@item.Language</h2>
        <h2>@item.Tool</h2>
    </div>
}
<body>
</body>
</html>

项目的完整代码GitHub地址:https://github.com/liuzhenyulive/BindReader

 

有任何疑问可以在文章下方评论留言。


 

相关文章
|
24天前
|
前端开发 Java 数据库
SpringBoot入门 - 对Hello world进行MVC分层
SpringBoot入门 - 对Hello world进行MVC分层
42 3
SpringBoot入门 - 对Hello world进行MVC分层
|
6天前
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:&lt;https://github.com/khellang/Scrutor&gt;
26 5
|
1月前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
SpringBoot入门(3) - 对Hello world进行MVC分层
33 4
|
2月前
|
存储 开发框架 JSON
ASP.NET Core OData 9 正式发布
【10月更文挑战第8天】Microsoft 在 2024 年 8 月 30 日宣布推出 ASP.NET Core OData 9,此版本与 .NET 8 的 OData 库保持一致,改进了数据编码以符合 OData 规范,并放弃了对旧版 .NET Framework 的支持,仅支持 .NET 8 及更高版本。新版本引入了更快的 JSON 编写器 `System.Text.UTF8JsonWriter`,优化了内存使用和序列化速度。
|
25天前
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
37 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
28天前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
SpringBoot入门(3) - 对Hello world进行MVC分层
16 1
 SpringBoot入门(3) - 对Hello world进行MVC分层
|
14天前
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
24 3
|
2月前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
SpringBoot入门(3) - 对Hello world进行MVC分层
43 1
SpringBoot入门(3) - 对Hello world进行MVC分层
|
1月前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
本文介绍了如何在Spring Boot项目中实现MVC分层架构,通过将代码划分为controller、service、dao和entity四个部分,实现高内聚低耦合的设计。示例项目包括用户增删查改功能,详细展示了各层的具体实现及运行测试。
42 11
|
1月前
|
前端开发 Java 数据库
SpringBoot入门(3) - 对Hello world进行MVC分层
SpringBoot入门(3) - 对Hello world进行MVC分层
21 2