示例#1
0
    private static async Task AddValueProviderAsync(ValueProviderFactoryContext context)
    {
        var request = context.ActionContext.HttpContext.Request;

        IFormCollection formCollection;

        try
        {
            formCollection = await request.ReadFormAsync();
        }
        catch (InvalidDataException ex)
        {
            // ReadFormAsync can throw InvalidDataException if the form content is malformed.
            // Wrap it in a ValueProviderException that the CompositeValueProvider special cases.
            throw new ValueProviderException(Resources.FormatFailedToReadRequestForm(ex.Message), ex);
        }
        catch (IOException ex)
        {
            // ReadFormAsync can throw IOException if the client disconnects.
            // Wrap it in a ValueProviderException that the CompositeValueProvider special cases.
            throw new ValueProviderException(Resources.FormatFailedToReadRequestForm(ex.Message), ex);
        }

        var valueProvider = new JQueryFormValueProvider(
            BindingSource.Form,
            JQueryKeyValuePairNormalizer.GetValues(formCollection, formCollection.Count),
            CultureInfo.CurrentCulture);

        context.ValueProviders.Add(valueProvider);
    }
示例#2
0
    public Task CreateValueProviderAsync(ValueProviderFactoryContext context)
    {
        if (context == null)
        {
            throw new ArgumentNullException(nameof(context));
        }

        var query = context.ActionContext.HttpContext.Request.Query;

        if (query != null && query.Count > 0)
        {
            var valueProvider = new JQueryQueryStringValueProvider(
                BindingSource.Query,
                JQueryKeyValuePairNormalizer.GetValues(query, query.Count),
                CultureInfo.InvariantCulture);

            context.ValueProviders.Add(valueProvider);
        }

        return(Task.CompletedTask);
    }