Exemple #1
0
 public Template(TemplateType templateType, Func <object, O, ContextualizedHelpers, IHtmlContent> fTemplate, ViewContext originalContext)
 {
     if (fTemplate == null)
     {
         throw new ArgumentNullException(nameof(fTemplate));
     }
     if (templateType != TemplateType.InLine && templateType != TemplateType.Function)
     {
         throw new ArgumentException(DefaultMessages.InconsistentTemplateFunc, nameof(templateType));
     }
     Type      = templateType;
     FTemplate = fTemplate;
     if (templateType == TemplateType.InLine)
     {
         if (originalContext == null)
         {
             throw new ArgumentNullException(nameof(originalContext));
         }
         this.originalContext = originalContext;
         Lock = originalContext.ViewData[viewLockName] as AsyncLock;
         if (Lock == null)
         {
             originalContext.ViewData[viewLockName] = Lock = new AsyncLock();
         }
         OriginalProvider = originalContext.TagHelperProvider();
     }
 }
Exemple #2
0
        public static IServiceCollection AddMvcControlsToolkitControls(this IServiceCollection services,
                                                                       Action <MvcControlsToolkitOptions> setupAction        = null,
                                                                       Type defaultTagHelpersProviderType                    = null,
                                                                       ITagHelpersProvider defaultTagHelpersProviderInstance = null
                                                                       )
        {
            services.AddLocalization();
            if (defaultTagHelpersProviderType == null)
            {
                defaultTagHelpersProviderInstance = null;
                defaultTagHelpersProviderType     = typeof(DefaultServerControlsTagHelpersProvider);
            }
            if (defaultTagHelpersProviderInstance == null)
            {
                defaultTagHelpersProviderInstance = Activator.CreateInstance(defaultTagHelpersProviderType) as ITagHelpersProvider;
            }
            services.AddTagHelpersProvider(defaultTagHelpersProviderType, defaultTagHelpersProviderInstance);

            services.AddMvcControlsToolkit((o) => { o.DefaultProvider = defaultTagHelpersProviderInstance; });

            services.Configure <RazorViewEngineOptions>(options =>
            {
                options.FileProviders.Add(
                    new EmbeddedFileProvider(typeof(ControlsDIExtensions).GetTypeInfo().Assembly,
                                             "MvcControlsToolkit.ControlsCore"));
            }
                                                        );
            if (setupAction != null)
            {
                services.Configure(setupAction);
            }
            return(services);
        }
        public static IServiceCollection AddMvcControlsToolkitControls(this IServiceCollection services, 
            Action<MvcControlsToolkitOptions> setupAction = null,
            Type defaultTagHelpersProviderType=null, 
            ITagHelpersProvider defaultTagHelpersProviderInstance=null
        )
        {
            services.AddLocalization();
            if (defaultTagHelpersProviderType == null)
            {
                defaultTagHelpersProviderInstance = null;
                defaultTagHelpersProviderType = typeof(DefaultServerControlsTagHelpersProvider);
            }
            if (defaultTagHelpersProviderInstance == null)
                defaultTagHelpersProviderInstance = Activator.CreateInstance(defaultTagHelpersProviderType) as ITagHelpersProvider;
            services.AddTagHelpersProvider(defaultTagHelpersProviderType, defaultTagHelpersProviderInstance);

            services.AddMvcControlsToolkit((o) => { o.DefaultProvider = defaultTagHelpersProviderInstance; });
            
            services.Configure<RazorViewEngineOptions>(options =>
                 {
                     options.FileProviders.Add(
                       new EmbeddedFileProvider(typeof(ControlsDIExtensions).GetTypeInfo().Assembly,
                       "MvcControlsToolkit.ControlsCore"));
                  }
            );
            if (setupAction != null)
                services.Configure(setupAction);
            return services;
        }
        public static ITagHelpersProvider TagHelperProvider(this ViewContext context)
        {
            var viewData            = context.ViewData;
            ITagHelpersProvider res = viewData[TagHelpersProviderContext.Field] as ITagHelpersProvider;

            if (res == null)
            {
                viewData[TagHelpersProviderContext.Field] = res = MvcControlsToolkitOptions.Instance.DefaultProvider;
            }
            return(res);
        }
Exemple #5
0
 public TagHelpersProviderContext(ITagHelpersProvider provider, ViewContext context)
 {
     this.provider      = provider;
     this.context       = context;
     oldProviderContext = context.ViewData[field] as TagHelpersProviderContext ??
                          new TagHelpersProviderContext(context.HttpContext.RequestServices.GetService <DefaultTagHelpersProvider>());
     if (oldProviderContext == provider)
     {
         return;
     }
     oldProviderContext.provider.UnPrepareViewContext(context);
     context.ViewData[field]         = this;
     context.ClientValidationEnabled = provider.RequireUnobtrusiveValidation;
     provider.PrepareViewContext(context);
 }
Exemple #6
0
 public TagHelpersProviderContext(ITagHelpersProvider provider)
 {
     this.provider = provider;
 }
Exemple #7
0
 public static IServiceCollection AddTagHelpersProvider(this IServiceCollection services, Type providerType, ITagHelpersProvider instance = null)
 {
     if (instance == null)
     {
         services.AddSingleton(providerType);
     }
     else
     {
         services.AddSingleton(providerType, instance);
     }
     return(services);
 }