任務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

 

一樣拿到了咱們的結果

相關文章
相關標籤/搜索