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

接上一篇中讲到利用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

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值