diff --git a/src/Microsoft.AspNet.Mvc.ModelBinding/ValueProviders/FormValueProviderFactory.cs b/src/Microsoft.AspNet.Mvc.ModelBinding/ValueProviders/FormValueProviderFactory.cs index 72fb6fa2a2..cbd1406b79 100644 --- a/src/Microsoft.AspNet.Mvc.ModelBinding/ValueProviders/FormValueProviderFactory.cs +++ b/src/Microsoft.AspNet.Mvc.ModelBinding/ValueProviders/FormValueProviderFactory.cs @@ -18,7 +18,7 @@ namespace Microsoft.AspNet.Mvc.ModelBinding if (IsSupportedContentType(request)) { var culture = GetCultureInfo(request); - return new ReadableStringCollectionValueProvider(request.GetFormAsync, culture); + return new ReadableStringCollectionValueProvider(() => request.GetFormAsync(), culture); } return null; diff --git a/src/Microsoft.AspNet.Mvc.ModelBinding/ValueProviders/ReadableStringCollectionValueProvider.cs b/src/Microsoft.AspNet.Mvc.ModelBinding/ValueProviders/ReadableStringCollectionValueProvider.cs index b991b34a42..6dcf116ac6 100644 --- a/src/Microsoft.AspNet.Mvc.ModelBinding/ValueProviders/ReadableStringCollectionValueProvider.cs +++ b/src/Microsoft.AspNet.Mvc.ModelBinding/ValueProviders/ReadableStringCollectionValueProvider.cs @@ -96,10 +96,8 @@ namespace Microsoft.AspNet.Mvc.ModelBinding if (_prefixContainer == null) { // Initialization race is OK providing data remains read-only and object identity is not significant - // TODO: Fix this once https://github.com/aspnet/HttpAbstractions/issues/3 is sorted out. - var collection = await GetValueCollectionAsync(); - _prefixContainer = new PrefixContainer(collection.Select(v => v.Key).ToArray()); + _prefixContainer = new PrefixContainer(collection.Keys); } return _prefixContainer; } diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/AntiXsrf/AntiForgeryTokenStoreTest.cs b/test/Microsoft.AspNet.Mvc.Core.Test/AntiXsrf/AntiForgeryTokenStoreTest.cs index 2ed2fd786d..0fb923b198 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/AntiXsrf/AntiForgeryTokenStoreTest.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/AntiXsrf/AntiForgeryTokenStoreTest.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using Microsoft.AspNet.Http; using Moq; @@ -125,7 +126,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test var requestContext = new Mock(); IReadableStringCollection formsCollection = new MockCookieCollection(new Dictionary() { { "form-field-name", string.Empty } }); - requestContext.Setup(o => o.GetFormAsync()) + requestContext.Setup(o => o.GetFormAsync(CancellationToken.None)) .Returns(Task.FromResult(formsCollection)); mockHttpContext.Setup(o => o.Request) .Returns(requestContext.Object); @@ -154,7 +155,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test new MockCookieCollection(new Dictionary() { { "form-field-name", "invalid-value" } }); var requestContext = new Mock(); - requestContext.Setup(o => o.GetFormAsync()) + requestContext.Setup(o => o.GetFormAsync(CancellationToken.None)) .Returns(Task.FromResult(formsCollection)); var mockHttpContext = new Mock(); @@ -194,7 +195,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test var requestContext = new Mock(); IReadableStringCollection formsCollection = new MockCookieCollection(new Dictionary() { { "form-field-name", "valid-value" } }); - requestContext.Setup(o => o.GetFormAsync()) + requestContext.Setup(o => o.GetFormAsync(CancellationToken.None)) .Returns(Task.FromResult(formsCollection)); mockHttpContext.Setup(o => o.Request) .Returns(requestContext.Object);