کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش MVC Core-آموزش تزریق وابستگی در Views ها در MVC Core

آموزش MVC Core-آموزش تزریق وابستگی در Views ها در MVC Core

مشکل

نحوه تزریق و استفاده از services در ASP.NET Core MVC Views.

راه حل

به روز رسانی کلاس Startup برای اضافه کردن services و middleware برای MVC

public void ConfigureServices(  
      IServiceCollection services)  
  {  
      services.AddScoped< ILookupService, LookupService >();  
      services.AddMvc();  
  }  
  
  public void Configure(  
      IApplicationBuilder app,  
      IHostingEnvironment env)  
  {  
      app.UseMvc(routes = >  
      {  
          routes.MapRoute(  
              name: "default",  
              template: "{controller=Home}/{action=Index}/{id?}");  
      });  
  }  

یک service اضافه کنید

public interface ILookupService  
 {  
     List Genres { get; }  
 }  
  
 public class LookupService : ILookupService  
 {  
     public List Genres  
     {  
         get  
         {  
             return new List  
             {  
                 new SelectListItem { Value = "0", Text = "Thriller" },  
                 new SelectListItem { Value = "1", Text = "Comedy" },  
                 new SelectListItem { Value = "2", Text = "Drama" },  
                 new SelectListItem { Value = "3", Text = "Romance" },  
             };  
         }  
     }  
 } 

یک Controller اضافه کنید،که ViewResult برگرداند.

public class HomeController : Controller  
  {  
      public IActionResult Index()  
      {  
          return View();  
      }  
  } 

یک View را برای تزریق و استفاده از سرویس اضافه کنید.

@using Fiver.Mvc.DependencyInjection.Models.Home  
@inject ILookupService Lookup  
   
< select name="genres" >  
    < option value="-1" >--Select Genre--< /option >  
    @foreach (var item in Lookup.Genres)  
    {  
        < option value="@item.Value" >@item.Text< /option >  
    }  
< /select >

بحث و گفتگو

در ASP.NET Core، تزریق وابستگی محدود به middleware، controllers و models و غیره نیست. Views ها همچنین می تواند از خدمات پیکربندی شده در service container بهره مند شوند.
چند گزینه برای ارائه داده ها و رفتار به View وجود دارد، برای مثال - ViewData، ViewBag، انواع سفارشی (View Models) و خدمات سفارشی (از طریق تزریق وابستگی). بهتر است که داده ها را از طریق "View Model" اختصاص داده شده ارائه دهیم، که در میان مزایای دیگر، دسترسی به داده هادر Views را strongly typed می کند.
خدمات تزریق در Views برای سناریوهایی است که در آن شما می خواهید یک رفتار را در چندین Views استفاده کنید. به عنوان مثال، برای ارائه داده های جستجو برای "dropdowns ها" یا "listsها" در Views.
دستورالعمل inject@ برای تزریق services به views استفاده می شود.سینتکس آن به شکل زیر است:

@inject service-type variable-name 

توجه داشته باشید که نام متغیر در Razor با نماد @ استفاده می شود ، به عنوان مثال، Lookup@، جایی که Lookup نام متغیر است.
شما می توانید Source Code این مقاله را از لینک زیر دانلود کنید:
https://github.com/TahirNaushad/Fiver.Mvc.DependencyInjection

1397/03/10 2872 1669
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...