任务13:在Core Mvc中使用Options

13html

新建Controllers文件夹,在里面添加HomeController控制器json

新建Views文件夹,再新建Home文件夹。再新建Index.cshtml的视图页面app

注释上节课的代码,不然咱们的管道都会被抵消,最后只输出了。appsettings.json文件的内容ide

注入MVCspa

添加默认路由,3d

这样就把整个MVC的middleware添加到咱们的应用程序当中code

 

使用IOptions是一个泛型的方法,把咱们的Class传进去,htm

 

 

Controller内输出代码blog

@model OptionsBindSample.Class
@{
    ViewData["Title"] = "Index";
}
<h2>Index</h2>
<h4>Class No: @Model.ClassNo</h4>
<h4>Class Desc: @Model.ClassDesc</h4>
<h3>
    Students:
</h3>
<div>
    @foreach (var student in Model.Students)
    {
        <span>Name: @student.Name</span>
        <span>Age: @student.Age</span>
    }
</div>
Index.cshtml

 

依赖注入和视图都完成后,要在Startup里面注册一下MyClass.把Configuration传进去。那么Options就会从这里读取到咱们的IOptions那个方法里面去路由

services.Configure<Class>(Configuration);

 

运行页面,咱们的options成功读取到了信息。

在Controller里面进行依赖注入,显得代码有点单纯 多余,

咱们能够在视图中把这个配置中从依赖注入中直接读取出来。

controller里面就是默认的返回

直接在视图中注入

@using Microsoft.Extensions.Options;
@inject IOptions<OptionsBindSample.Class> ClassAccesser

@{
    ViewData["Title"] = "Index";
}
<h2>Index</h2>
<h4>Class No: @ClassAccesser.Value.ClassNo</h4>
<h4>Class Desc: @ClassAccesser.Value.ClassDesc</h4>
<h3>
    Students:
</h3>
<div>
    @foreach (var student in ClassAccesser.Value.Students)
    {
        <span>Name: @student.Name</span>
        <span>Age: @student.Age</span>
    }
</div>
Index.cshtml

 

一样拿到了咱们的结果

相关文章
相关标签/搜索