Пример #1
0
        /// <summary>
        /// Renders the reCaptcha HTML control.
        /// </summary>
        /// <param name="htmlHelper"><c>HtmlHelper</c> instance.</param>
        /// <param name="htmlAttributes">List of HTML attributes.</param>
        /// <param name="parameters"><c>ReCaptchaParameters</c> object.</param>
        /// <returns>Returns the reCaptcha HTML control.</returns>
        public static MvcHtmlString ReCaptcha(this HtmlHelper htmlHelper, RenderParameters parameters, IDictionary <string, object> htmlAttributes)
        {
            var builder = new TagBuilder("div");

            if (parameters != null)
            {
                builder.MergeAttributes(parameters.ToDictionary <RenderParameters, string, object>());
            }

            if (htmlAttributes != null)
            {
                builder.MergeAttributes(htmlAttributes);
            }

            string result;

            if (!builder.Attributes.TryGetValue("class", out result))
            {
                result = "g-recaptcha";
                builder.AddCssClass(result);
            }

            if (!result.Contains("g-recaptcha"))
            {
                builder.AddCssClass("g-recaptcha");
            }

            return(builder.ToMvcHtmlString(TagRenderMode.Normal));
        }
Пример #2
0
        /// <summary>
        /// Gets the callback script.
        /// </summary>
        /// <param name="callback">Name of callback function.</param>
        /// <param name="elementId">Id of the placeholder element.</param>
        /// <param name="parameters"><c>RenderParameters</c> instance.</param>
        /// <returns>Returns the callback script.</returns>
        private static string GetCallbackScript(string callback, string elementId, RenderParameters parameters)
        {
            if (String.IsNullOrWhiteSpace(callback))
            {
                throw new ArgumentNullException("callback");
            }

            if (String.IsNullOrWhiteSpace(elementId))
            {
                throw new ArgumentNullException("elementId");
            }

            var serialised = parameters == null
                                 ? null
                                 : JsonConvert.SerializeObject(parameters.ToDictionary <RenderParameters, string, object>())
                             .Replace("\"data-", "\"");

            var sb = new StringBuilder();

            sb.AppendLine(String.Format("var {0} = function() {{", callback));
            sb.AppendLine(String.Format("grecaptcha.render(\"{0}\", {1});", elementId, serialised));
            sb.AppendLine("};");

            return(sb.ToString());
        }