public IDictionary <string, object> ToUnobtrusiveHtmlAttributes() { var result = new Dictionary <string, object> { { "data-ajax", "true" }, }; PagerBuilder.AddToDictionaryIfNotEmpty(result, "data-ajax-method", HttpMethod); PagerBuilder.AddToDictionaryIfNotEmpty(result, "data-ajax-confirm", Confirm); PagerBuilder.AddToDictionaryIfNotEmpty(result, "data-ajax-begin", OnBegin); PagerBuilder.AddToDictionaryIfNotEmpty(result, "data-ajax-complete", OnComplete); PagerBuilder.AddToDictionaryIfNotEmpty(result, "data-ajax-failure", OnFailure); PagerBuilder.AddToDictionaryIfNotEmpty(result, "data-ajax-success", OnSuccess); if (!string.IsNullOrWhiteSpace(DataFormId)) { result.Add("data-ajax-search-form", PagerBuilder.EscapeIdSelector(DataFormId)); } if (!String.IsNullOrWhiteSpace(LoadingElementId)) { result.Add("data-ajax-loading", PagerBuilder.EscapeIdSelector(LoadingElementId.Trim('#'))); if (LoadingElementDuration > 0) { result.Add("data-ajax-loading-duration", LoadingElementDuration); } } if (!String.IsNullOrWhiteSpace(UpdateTargetId)) { result.Add("data-ajax-update", PagerBuilder.EscapeIdSelector(UpdateTargetId.Trim('#'))); } if (EnablePartialLoading) { result.Add("data-ajax-partial-loading", "true"); } if (!AllowCache) { result.Add("data-ajax-cache", "false"); } if (!EnableHistorySupport) { result.Add("data-ajax-history", "false"); } return(result); }
public override void Process(TagHelperContext context, TagHelperOutput output) { if (!IsAjax || !output.Attributes.ContainsName("action")) { return; } output.MergeAttribute("data-ajax", "true", true); AddIfSpecified("data-ajax-url", output.Attributes["action"].ToString()); AddIfSpecified("data-ajax-method", output.Attributes["method"]?.ToString() ?? "post"); AddIfSpecified("data-ajax-confirm", Confirm); AddIfSpecified("data-ajax-begin", OnBegin); AddIfSpecified("data-ajax-complete", OnComplete); AddIfSpecified("data-ajax-failure", OnFailure); AddIfSpecified("data-ajax-success", OnSuccess); if (AllowCache) { AddIfSpecified("data-ajax-cache", "true"); } if (LoadingElementId.HasValue()) { AddIfSpecified("data-ajax-loading", LoadingElementId.EnsureStartsWith('#')); if (LoadingElementDuration > 0) { output.MergeAttribute("data-ajax-loading-duration", LoadingElementDuration, true); } } if (UpdateTargetId.HasValue()) { AddIfSpecified("data-ajax-update", UpdateTargetId.EnsureStartsWith('#')); AddIfSpecified("data-ajax-mode", InsertionModeUnobtrusive); } void AddIfSpecified(string name, string value) { if (value.HasValue()) { output.MergeAttribute(name, value, true); } } }