- 这一节介绍Options方法,继续在OptionsBindSample项目下。
- 在项目中添加一个Controllers文件夹,文件夹添加一个HomeController控制器
- HomeController.cs
-
1 private readonly Class _myClass; 2 3 public HomeController(IOptions
classAccesser)//IOptions的方法注入 4 { 5 this._myClass = classAccesser.Value; 6 } 7 8 public IActionResult Index() 9 {10 return View(_myClass);11 } - 在项目中添加一个Views文件夹,文件夹中添加一个Home文件夹(这和ASP.NET MVC一样),Home文件夹下添加一个Index.cshtml
-
1 @model OptionsBindSample.Class 2 3 @{ 4 ViewData["Title"] = "Index"; 5 } 6 7
Index
8 910 @foreach(var stu in Model.Students)11 {12 Name:@stu.Name13 Age:@stu.Age14 15 }16 - 此时StartUp.cs应该改成这样
-
1 public IConfiguration Configuration { get; set; } 2 3 public Startup(IConfiguration configuration) 4 { 5 this.Configuration = configuration; 6 } 7 8 // This method gets called by the runtime. Use this method to add services to the container. 9 // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=39894010 public void ConfigureServices(IServiceCollection services)11 {12 services.Configure
(Configuration);13 14 services.AddMvc();15 }16 17 // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.18 public void Configure(IApplicationBuilder app, IHostingEnvironment env)19 {20 if (env.IsDevelopment())21 {22 app.UseDeveloperExceptionPage();23 }24 25 app.UseMvcWithDefaultRoute();26 }
也可以不用在Controller中依赖注入,而在视图中注入,改成如下:
HomeController.cs
1 public IActionResult Index()2 { 3 return View();4 }
Index.cshtml:
1 @using Microsoft.Extensions.Options 2 @inject IOptionsClassAccesser 3 @{ 4 ViewData["Title"] = "Index"; 5 } 6 Index
7 89 @foreach(var stu in ClassAccesser.Value.Students)10 {11 Name:@stu.Name12 Age:@stu.Age13 14 }15