/// <summary>
 /// 初始化当前标签上下文。
 /// </summary>
 /// <param name="context">当前HTML标签上下文,包含当前HTML相关信息。</param>
 public override void Init(TagHelperContext context)
 {
     base.Init(context);
     if (IconName == null)
     {
         if (Icon != IconType.None)
         {
             IconName = Icon.ToDescriptionString();
         }
         else
         {
             IconName = Type.GetIconClassName();
         }
     }
     if (!RouteValues.ContainsKey("handler"))
     {
         switch (Type)
         {
         case ActionType.Delete:
         case ActionType.MoveUp:
         case ActionType.MoveDown:
         case ActionType.Edit:
         case ActionType.Upload:
             RouteValues.Add("handler", Type.ToString());
             break;
         }
     }
 }
Esempio n. 2
0
        public bool CheckIsActive(bool ignoreAction)
        {
            string currentController         = ViewContext.RouteData.Values["Controller"].ToString();
            string currentAction             = ViewContext.RouteData.Values["Action"].ToString();
            RouteValueDictionary routeValues = ViewContext.RouteData.Values;

            var stringComparer = StringComparison.OrdinalIgnoreCase;

            if (!string.IsNullOrEmpty(Controller) && !string.Equals(Controller, currentController, stringComparer))
            {
                return(false);
            }

            if (!ignoreAction && !string.IsNullOrEmpty(Action) && !string.Equals(Action, currentAction, stringComparer))
            {
                return(false);
            }

            foreach (var(key, value) in RouteValues)
            {
                if (!RouteValues.ContainsKey(key) || RouteValues[key].ToString() != value)
                {
                    return(false);
                }
            }

            return(true);
        }
Esempio n. 3
0
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            if (!output.Attributes.ContainsName(Href) &&
                !context.AllAttributes.ContainsName("asp-route-lang") &&
                !(RouteValues?.ContainsKey("lang") == true))
            {
                var routeValues = ViewContext?.RouteData?.Values;

                if (routeValues != null)
                {
                    var langValue = routeValues["lang"]?.ToString();

                    if (string.IsNullOrWhiteSpace(langValue))
                    {
                        langValue = AnchorTagHelperSettings.DefaultCulture;
                    }

                    if (RouteValues == null)
                    {
                        RouteValues = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);
                    }

                    RouteValues.Add("lang", langValue);
                }
            }

            base.Process(context, output);
        }
        protected override string ResolveUrl(RouteValues routeValues, IElasticsearchClientSettings settings)
        {
            if (Pit is not null && !string.IsNullOrEmpty(Pit.Id ?? string.Empty) && routeValues.ContainsKey("index"))
            {
                routeValues.Remove("index");
            }

            return(base.ResolveUrl(routeValues, settings));
        }
        protected string GetPageLink(int pageNumber, UrlHelper urlHelper)
        {
            if (RouteValues != null && !string.IsNullOrEmpty(PageRouteValueName) && RouteValues.ContainsKey(PageRouteValueName))
            {
                RouteValues[PageRouteValueName] = pageNumber;
            }

            return(string.IsNullOrEmpty(ActionName) || string.IsNullOrEmpty(ControllerName) ? "#" : urlHelper.Action(ActionName, ControllerName, RouteValues));
        }
Esempio n. 6
0
 public virtual void GenerateUrl()
 {
     if (!RouteValues.ContainsKey("app"))
     {
         RouteValues["app"] = Widget.Ace.AppName;
     }
     Url     = GetApi(RouteValues);
     Dynamic = true;
 }
Esempio n. 7
0
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            //RouteValues["culture"] = (string)context.AllAttributes.Where(e => e.Name == nameof(RouteCultureAttributeName)).FirstOrDefault()?.Value;
            if (!RouteValues.ContainsKey("culture"))
            {
                RouteValues["culture"] = (string)contextAccessor.HttpContext.Request.RouteValues["culture"] ?? Startup.DefaultRequestCulture.Culture.TwoLetterISOLanguageName;
            }

            base.Process(context, output);
        }
        protected override string ResolveUrl(RouteValues routeValues, IElasticsearchClientSettings settings)
        {
            if ((Self.PitValue is not null || Self.PitDescriptor is not null || Self.PitDescriptorAction is not null) && routeValues.ContainsKey("index"))
            {
                routeValues.Remove("index");
            }

            return(base.ResolveUrl(routeValues, settings));
        }
Esempio n. 9
0
        public BindingResult Bind(string name, Type type, IRequest request, RouteValues routeValues, bool isNestedCall, object owner)
        {
            var nameLower = name.ToLowerInvariant();

            if (routeValues.ContainsKey(nameLower))
            {
                var value = routeValues[nameLower];
                if (value != null)
                {
                    var strValue     = value.ToString();
                    var decodedValue = WebUtility.UrlDecode(strValue);
                    return(this.GetResult(type, decodedValue, name, request, routeValues, owner));
                }
            }

            if (request.HttpMethod == HttpMethod.Post || request.HttpMethod == HttpMethod.Put)
            {
                if (request.ContentType != null)
                {
                    if (request.ContentType.MediaType == "multipart/form-data")
                    {
                        var value = request.Form[name];
                        if (value != null)
                        {
                            return(this.GetResult(type, value, name, request, routeValues, owner));
                        }
                    }
                    else if (request.ContentType.MediaType == "application/x-www-form-urlencoded")
                    {
                        var value = request.Form[name];
                        if (value != null)
                        {
                            return(this.GetResult(type, value, name, request, routeValues, owner));
                        }
                    }
                    else if (request.ContentType.MediaType == "application/json")
                    {
                        if (request.BufferlessInputStream.Length > 0)
                        {
                            string jsonString;
                            using (var inputStream = new StreamReader(request.BufferlessInputStream, Encoding.UTF8, true, 1024, true))
                                jsonString = inputStream.ReadToEnd();

                            if (!string.IsNullOrWhiteSpace(jsonString))
                            {
                                return(this.GetResult(type, jsonString, name, request, routeValues, owner));
                            }
                        }
                    }
                }
            }

            var query = request.Url.QueryCollection[name];

            if (query == null)
            {
                return(new BindingResult(this.GetDefault(type), BindingResult.ResultType.Default));
            }

            return(this.GetResult(type, request.Url.QueryCollection[name], name, request, routeValues, owner));
        }