staged
989f906c1bb2d86d13180cb7c94676abc1755e66
31 files changed
src/Mvc.ModelBinding.MultiParameter.Testing/Controllers/ComplexController.cssrc/Mvc.ModelBinding.MultiParameter.Testing/Controllers/SpeedController.cssrc/Mvc.ModelBinding.MultiParameter.Testing/CustomFormValueProviderFactory.cssrc/Mvc.ModelBinding.MultiParameter.Testing/Mvc.ModelBinding.MultiParameter.Testing.csprojsrc/Mvc.ModelBinding.MultiParameter.Testing/Program.cssrc/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/3vl4na0k.de1.msisrc/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/co3afvpp.msl.msisrc/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/gtltjibv.lvf.msisrc/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/qzkmeg4w.0hw.msisrc/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/vlrjhly3.d5p.msisrc/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/yqo5tddw.its.msisrc/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/zd3vv3yv.zox.msisrc/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/Default.jssrc/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/SpeedTest.jssrc/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/index.htmlsrc/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/speedtest.htmlsrc/Mvc.ModelBinding.MultiParameter/CookyValueProviderFactory.cssrc/Mvc.ModelBinding.MultiParameter/Factories/CookyValueProviderFactory.cssrc/Mvc.ModelBinding.MultiParameter/Factories/FormValueProviderFactory.cssrc/Mvc.ModelBinding.MultiParameter/Factories/HeaderValueProviderFactory.cssrc/Mvc.ModelBinding.MultiParameter/Factories/JsonValueProviderFactory.cssrc/Mvc.ModelBinding.MultiParameter/Factories/QueryStringValueProviderFactory.cssrc/Mvc.ModelBinding.MultiParameter/Factories/RouteValueProviderFactory.cssrc/Mvc.ModelBinding.MultiParameter/FormValueProviderFactory.cssrc/Mvc.ModelBinding.MultiParameter/GenericModelBinderProvider.cssrc/Mvc.ModelBinding.MultiParameter/GenericValueProvider.cssrc/Mvc.ModelBinding.MultiParameter/HeaderValueProviderFactory.cssrc/Mvc.ModelBinding.MultiParameter/JsonValueProviderFactory.cssrc/Mvc.ModelBinding.MultiParameter/Mvc.ModelBinding.MultiParameter.csprojsrc/Mvc.ModelBinding.MultiParameter/QueryStringValueProviderFactory.cssrc/Mvc.ModelBinding.MultiParameter/RouteValueProviderFactory.cs
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/Controllers/ComplexController.cs b/src/Mvc.ModelBinding.MultiParameter.Testing/Controllers/ComplexController.cs
index 90e7b9c..cdf1258 100644
--- a/src/Mvc.ModelBinding.MultiParameter.Testing/Controllers/ComplexController.cs
+++ b/src/Mvc.ModelBinding.MultiParameter.Testing/Controllers/ComplexController.cs
@@ -501,19 +501,29 @@ public class ApiController : ControllerBase
[RequestFormLimits(MultipartBodyLengthLimit = 2_500_000_000)]
public async Task<IActionResult> Upload(IFormFile file, string Form1)
{
- long Length = -1;
- if (file != null && file.Length > 0)
+ if (file?.Length == 0)
+ return BadRequest("No file uploaded or file is empty.");
+
+ try
{
- Length = file.Length;
- using var ms = new MemoryStream();
- await file.CopyToAsync(ms); // some dummy operation
+ var Length = file.Length;
+ var filePath = Path.GetTempFileName();
+
+ using (var stream = new FileStream(filePath, FileMode.Create))
+ await file.CopyToAsync(stream);
+ return Ok(new
+ {
+ Form1,
+ Length,
+ filePath
+ });
}
- return Ok(new
+ catch (Exception ex)
{
- Length,
- Form1
- });
+ return StatusCode(500, new { Message = "An error occurred while uploading the file.", Error = ex.Message });
+ }
+
}
public enum AddressEnum
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/Controllers/SpeedController.cs b/src/Mvc.ModelBinding.MultiParameter.Testing/Controllers/SpeedController.cs
index 3e6e2c1..9f5e741 100644
--- a/src/Mvc.ModelBinding.MultiParameter.Testing/Controllers/SpeedController.cs
+++ b/src/Mvc.ModelBinding.MultiParameter.Testing/Controllers/SpeedController.cs
@@ -42,4 +42,46 @@ public class SpeedController : ControllerBase
}
+ // Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse);
+ public class Address
+ {
+ public string street { get; set; }
+ public string city { get; set; }
+ public string zipcode { get; set; }
+ }
+
+ public class Metadata
+ {
+ public int totalCount { get; set; }
+ public DateTime generatedAt { get; set; }
+ }
+
+ public class Preferences
+ {
+ public string theme { get; set; }
+ public bool notifications { get; set; }
+ }
+
+ public class LargeObject
+ {
+ public List<User> users { get; set; }
+ public Metadata metadata { get; set; }
+ }
+
+ public class User
+ {
+ public int id { get; set; }
+ public string name { get; set; }
+ public string email { get; set; }
+ public Address address { get; set; }
+ public Preferences preferences { get; set; }
+ }
+
+
+ [HttpPost("~/api/LargeJson")]
+ public IActionResult LargeJson(LargeObject largeJson)
+ {
+ return Ok();
+ }
+
}
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/CustomFormValueProviderFactory.cs b/src/Mvc.ModelBinding.MultiParameter.Testing/CustomFormValueProviderFactory.cs
new file mode 100644
index 0000000..5eb60c5
--- /dev/null
+++ b/src/Mvc.ModelBinding.MultiParameter.Testing/CustomFormValueProviderFactory.cs
@@ -0,0 +1,29 @@
+using Microsoft.AspNetCore.Mvc.ModelBinding;
+using System.Globalization;
+
+namespace Mvc.ModelBinding.MultiParameter.Testing
+{
+ public class CustomFormValueProviderFactory : IValueProviderFactory
+ {
+ public Task CreateValueProviderAsync(ValueProviderFactoryContext context)
+ {
+ ArgumentNullException.ThrowIfNull(context);
+
+ // Check if the request is of the correct content type
+ if (context.ActionContext.HttpContext.Request.ContentType == "application/x-www-form-urlencoded" ||
+ context.ActionContext.HttpContext.Request.ContentType.StartsWith("multipart/form-data"))
+ {
+ var formCollection = context.ActionContext.HttpContext.Request.Form;
+ var valueProvider = new FormValueProvider(
+ BindingSource.Form,
+ formCollection,
+ CultureInfo.CurrentCulture
+ );
+
+ context.ValueProviders.Add(valueProvider);
+ }
+
+ return Task.CompletedTask;
+ }
+ }
+}
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/Mvc.ModelBinding.MultiParameter.Testing.csproj b/src/Mvc.ModelBinding.MultiParameter.Testing/Mvc.ModelBinding.MultiParameter.Testing.csproj
index e0c67fc..5f6182d 100644
--- a/src/Mvc.ModelBinding.MultiParameter.Testing/Mvc.ModelBinding.MultiParameter.Testing.csproj
+++ b/src/Mvc.ModelBinding.MultiParameter.Testing/Mvc.ModelBinding.MultiParameter.Testing.csproj
@@ -4,6 +4,7 @@
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
+ <ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup>
<ItemGroup>
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/Program.cs b/src/Mvc.ModelBinding.MultiParameter.Testing/Program.cs
index 2ee08b1..e49be08 100644
--- a/src/Mvc.ModelBinding.MultiParameter.Testing/Program.cs
+++ b/src/Mvc.ModelBinding.MultiParameter.Testing/Program.cs
@@ -1,5 +1,3 @@
-
-
var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
// the 'real' root of the application
@@ -12,8 +10,6 @@ builder.Services.AddDistributedMemoryCache();
builder.Services.AddSession();
-
-
var app = builder.Build();
app.UseRouting();
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/3vl4na0k.de1.msi b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/3vl4na0k.de1.msi
new file mode 100644
index 0000000..5f286b3
Binary files /dev/null and b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/3vl4na0k.de1.msi differ
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/co3afvpp.msl.msi b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/co3afvpp.msl.msi
new file mode 100644
index 0000000..5f286b3
Binary files /dev/null and b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/co3afvpp.msl.msi differ
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/gtltjibv.lvf.msi b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/gtltjibv.lvf.msi
new file mode 100644
index 0000000..5f286b3
Binary files /dev/null and b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/gtltjibv.lvf.msi differ
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/qzkmeg4w.0hw.msi b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/qzkmeg4w.0hw.msi
new file mode 100644
index 0000000..5f286b3
Binary files /dev/null and b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/qzkmeg4w.0hw.msi differ
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/vlrjhly3.d5p.msi b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/vlrjhly3.d5p.msi
new file mode 100644
index 0000000..5f286b3
Binary files /dev/null and b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/vlrjhly3.d5p.msi differ
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/yqo5tddw.its.msi b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/yqo5tddw.its.msi
new file mode 100644
index 0000000..5f286b3
Binary files /dev/null and b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/yqo5tddw.its.msi differ
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/zd3vv3yv.zox.msi b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/zd3vv3yv.zox.msi
new file mode 100644
index 0000000..5f286b3
Binary files /dev/null and b/src/Mvc.ModelBinding.MultiParameter.Testing/UploadedFiles/zd3vv3yv.zox.msi differ
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/Default.js b/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/Default.js
index 339f68a..bdc77dd 100644
--- a/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/Default.js
+++ b/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/Default.js
@@ -290,11 +290,11 @@ function StartUpload(e)
var formData = new FormData();
formData.append("file", file, file.name);
- formData.append("Form1", "Value1"); // some extra Form data
+ formData.append("Form1", "another var");
netproxy("/api/Upload", formData, function ()
{
- result.innerText = 'Ready Length:' + this.Length + " ExtraValue:" + this.Form1;
+ result.innerText = 'Ready Length:' + this.Length + " ExtraValue:" + this.Form1 + " path:" + this.filePath;
}, window.NetProxyErrorHandler, ProgressHandler);
}
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/SpeedTest.js b/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/SpeedTest.js
index 8071090..8ed99ab 100644
--- a/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/SpeedTest.js
+++ b/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/SpeedTest.js
@@ -14,6 +14,33 @@ const input = {
"SomeParameter5": 5.5 // double binder
};
+const largeJson = { users: [], metadata: {} };
+
+for (let i = 1; i <= 1000; i++)
+{
+ largeJson.users.push({
+ id: i,
+ name: `User ${i}`,
+ email: `user${i}@example.com`,
+ address: {
+ street: `${i} Example Rd`,
+ city: "CityName",
+ zipcode: `ZIP${i}`
+ },
+ preferences: {
+ theme: i % 2 === 0 ? "dark" : "light",
+ notifications: i % 3 === 0
+ }
+ });
+}
+
+largeJson.metadata = {
+ totalCount: largeJson.users.length,
+ generatedAt: new Date().toISOString()
+};
+
+
+//console.log(JSON.stringify(largeJson));
onReady(() =>
{
@@ -51,5 +78,10 @@ async function SpeedTest()
async function MultiBinderTest()
{
const result = await netproxyasync("./api/Speedtest/two?SomeParameter3=three&SomeParameter6=6", input);
+}
+async function LargeJson()
+{
+ await netproxyasync("./api/LargeJson", { largeJson: largeJson });
}
+
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/index.html b/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/index.html
index a6f32ec..e68fa8b 100644
--- a/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/index.html
+++ b/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/index.html
@@ -32,5 +32,6 @@
<div><span id="PostIt" class="ui-btn">PostIt</span></div>
<div><a href="speedtest.html" class="ui-btn">SpeedTest</a></div>
+
</body>
</html>
diff --git a/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/speedtest.html b/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/speedtest.html
index 39626e9..1718b30 100644
--- a/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/speedtest.html
+++ b/src/Mvc.ModelBinding.MultiParameter.Testing/wwwroot/speedtest.html
@@ -20,6 +20,8 @@
<div><span id="SpeedTest" class="ui-btn">Start Speed Test</span></div>
+ <div><span id="LargeJson" class="ui-btn">Upload LargeJson</span></div>
+
<div id="Output"></div>
</body>
diff --git a/src/Mvc.ModelBinding.MultiParameter/CookyValueProviderFactory.cs b/src/Mvc.ModelBinding.MultiParameter/Factories/CookyValueProviderFactory.cs
similarity index 82%
rename from src/Mvc.ModelBinding.MultiParameter/CookyValueProviderFactory.cs
rename to src/Mvc.ModelBinding.MultiParameter/Factories/CookyValueProviderFactory.cs
index 792a5ce..0ff471f 100644
--- a/src/Mvc.ModelBinding.MultiParameter/CookyValueProviderFactory.cs
+++ b/src/Mvc.ModelBinding.MultiParameter/Factories/CookyValueProviderFactory.cs
@@ -1,3 +1,5 @@
+using Microsoft.AspNetCore.Mvc.ModelBinding;
+using Microsoft.AspNetCore.Mvc.ModelBinding.MultiParameter;
using System.Text.Json;
namespace Microsoft.AspNetCore.Mvc.ModelBinding.MultiParameter;
@@ -9,7 +11,7 @@ public class CookyValueProviderFactory(JsonSerializerOptions? jsonSerializerOpti
if (context?.ActionContext?.HttpContext?.Request?.Cookies is { Count: > 0 } cookies)
{
var jsonString = JsonSerializer.Serialize(
- cookies.ToDictionary(c => c.Key, c => c.Value),
+ cookies.ToDictionary(c => c.Key, c => c.Value),
jsonSerializerOptions);
var jsonDocument = JsonDocument.Parse(jsonString);
diff --git a/src/Mvc.ModelBinding.MultiParameter/Factories/FormValueProviderFactory.cs b/src/Mvc.ModelBinding.MultiParameter/Factories/FormValueProviderFactory.cs
new file mode 100644
index 0000000..98068da
--- /dev/null
+++ b/src/Mvc.ModelBinding.MultiParameter/Factories/FormValueProviderFactory.cs
@@ -0,0 +1,26 @@
+using System.Text.Json;
+
+namespace Microsoft.AspNetCore.Mvc.ModelBinding.MultiParameter;
+
+/// <summary>
+/// A <see cref="IValueProviderFactory"/> for <see cref="GenericValueProvider"/>.
+/// </summary>
+public class FormValueProviderFactory(JsonSerializerOptions? jsonSerializerOptions) : IValueProviderFactory
+{
+ /// <inheritdoc />
+ public Task CreateValueProviderAsync(ValueProviderFactoryContext? context)
+ {
+ if (context?.ActionContext?.HttpContext?.Request is { HasFormContentType: true } request)
+ {
+ context.ValueProviders.Add(new GenericValueProvider(
+ BindingSource.Form,
+ jsonDocument: null,
+ formCollection: request.Form,
+ jsonSerializerOptions: jsonSerializerOptions));
+ }
+
+ return Task.CompletedTask;
+ }
+
+}
+
diff --git a/src/Mvc.ModelBinding.MultiParameter/HeaderValueProviderFactory.cs b/src/Mvc.ModelBinding.MultiParameter/Factories/HeaderValueProviderFactory.cs
similarity index 100%
rename from src/Mvc.ModelBinding.MultiParameter/HeaderValueProviderFactory.cs
rename to src/Mvc.ModelBinding.MultiParameter/Factories/HeaderValueProviderFactory.cs
diff --git a/src/Mvc.ModelBinding.MultiParameter/JsonValueProviderFactory.cs b/src/Mvc.ModelBinding.MultiParameter/Factories/JsonValueProviderFactory.cs
similarity index 93%
rename from src/Mvc.ModelBinding.MultiParameter/JsonValueProviderFactory.cs
rename to src/Mvc.ModelBinding.MultiParameter/Factories/JsonValueProviderFactory.cs
index fc6c35a..591540a 100644
--- a/src/Mvc.ModelBinding.MultiParameter/JsonValueProviderFactory.cs
+++ b/src/Mvc.ModelBinding.MultiParameter/Factories/JsonValueProviderFactory.cs
@@ -1,4 +1,3 @@
-
using System.Text.Json;
namespace Microsoft.AspNetCore.Mvc.ModelBinding.MultiParameter;
@@ -9,9 +8,9 @@ public class JsonValueProviderFactory(JsonSerializerOptions? jsonSerializerOptio
{
if (context?.ActionContext?.HttpContext?.Request is { Method: "POST" } request)
{
- if ((request.ContentType == null ||
+ if ((request.ContentType == null ||
request.ContentType.StartsWith("application/json"))
- && (request.ContentLength == null ||
+ && (request.ContentLength == null ||
request.ContentLength >= 2)) // matches an empty "{}" post
{
return AddValueProviderAsync(context);
diff --git a/src/Mvc.ModelBinding.MultiParameter/QueryStringValueProviderFactory.cs b/src/Mvc.ModelBinding.MultiParameter/Factories/QueryStringValueProviderFactory.cs
similarity index 97%
rename from src/Mvc.ModelBinding.MultiParameter/QueryStringValueProviderFactory.cs
rename to src/Mvc.ModelBinding.MultiParameter/Factories/QueryStringValueProviderFactory.cs
index 4ce16ee..bf62c6e 100644
--- a/src/Mvc.ModelBinding.MultiParameter/QueryStringValueProviderFactory.cs
+++ b/src/Mvc.ModelBinding.MultiParameter/Factories/QueryStringValueProviderFactory.cs
@@ -1,4 +1,3 @@
-
using System.Text.Json;
namespace Microsoft.AspNetCore.Mvc.ModelBinding.MultiParameter;
@@ -19,7 +18,7 @@ public class QueryStringValueProviderFactory(JsonSerializerOptions? jsonSerializ
var jsonDocument = JsonDocument.Parse(
JsonSerializer.Serialize(
- queryDictionary,
+ queryDictionary,
jsonSerializerOptions));
context.ValueProviders.Add(new GenericValueProvider(
diff --git a/src/Mvc.ModelBinding.MultiParameter/RouteValueProviderFactory.cs b/src/Mvc.ModelBinding.MultiParameter/Factories/RouteValueProviderFactory.cs
similarity index 99%
rename from src/Mvc.ModelBinding.MultiParameter/RouteValueProviderFactory.cs
rename to src/Mvc.ModelBinding.MultiParameter/Factories/RouteValueProviderFactory.cs
index a5dc828..7b5298c 100644
--- a/src/Mvc.ModelBinding.MultiParameter/RouteValueProviderFactory.cs
+++ b/src/Mvc.ModelBinding.MultiParameter/Factories/RouteValueProviderFactory.cs
@@ -1,4 +1,3 @@
-
using System.Text.Json;
namespace Microsoft.AspNetCore.Mvc.ModelBinding.MultiParameter;
diff --git a/src/Mvc.ModelBinding.MultiParameter/FormValueProviderFactory.cs b/src/Mvc.ModelBinding.MultiParameter/FormValueProviderFactory.cs
deleted file mode 100644
index aa028c8..0000000
--- a/src/Mvc.ModelBinding.MultiParameter/FormValueProviderFactory.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System.Text.Json;
-
-using Microsoft.AspNetCore.Http;
-
-namespace Microsoft.AspNetCore.Mvc.ModelBinding.MultiParameter;
-
-/// <summary>
-/// A <see cref="IValueProviderFactory"/> for <see cref="GenericValueProvider"/>.
-/// </summary>
-public class FormValueProviderFactory(JsonSerializerOptions? jsonSerializerOptions) : IValueProviderFactory
-{
- /// <inheritdoc />
- public Task CreateValueProviderAsync(ValueProviderFactoryContext? context)
- {
- if (context?.ActionContext?.HttpContext?.Request is { HasFormContentType: true } )
- {
- // Allocating a Task only when the body is form data.
-
- return AddValueProviderAsync(context);
- }
-
- return Task.CompletedTask;
- }
-
- private async Task AddValueProviderAsync(ValueProviderFactoryContext context)
- {
- var request = context.ActionContext.HttpContext.Request;
-
- IFormCollection formCollection;
-
- try
- {
- formCollection = await request.ReadFormAsync();
- }
- catch (InvalidDataException ex)
- {
- throw new ValueProviderException("Malformed form content detected.", ex);
- }
- catch (IOException ex)
- {
- throw new ValueProviderException("Client disconnected during form reading.", ex);
- }
-
- context.ValueProviders.Add(new GenericValueProvider(
- BindingSource.Form,
- jsonDocument: null,
- formCollection: formCollection,
- jsonSerializerOptions: jsonSerializerOptions));
- }
-}
-
diff --git a/src/Mvc.ModelBinding.MultiParameter/GenericModelBinderProvider.cs b/src/Mvc.ModelBinding.MultiParameter/GenericModelBinderProvider.cs
index 3f0f67d..06a0e72 100644
--- a/src/Mvc.ModelBinding.MultiParameter/GenericModelBinderProvider.cs
+++ b/src/Mvc.ModelBinding.MultiParameter/GenericModelBinderProvider.cs
@@ -32,7 +32,6 @@ public class GenericModelBinder(Type type) : IModelBinder
if (iBindingGetModelProviders.FirstOrDefault(x => x != null &&
x.ContainsPrefix(defaultContext.OriginalModelName)) is not IBindingSourceValueProvider getModelProvider)
{
- //System.Diagnostics.Debug.WriteLine($"Bind failed on: {defaultContext.OriginalModelName}");
return Task.CompletedTask; // Failed
}
diff --git a/src/Mvc.ModelBinding.MultiParameter/GenericValueProvider.cs b/src/Mvc.ModelBinding.MultiParameter/GenericValueProvider.cs
index 7fed27d..df74f93 100644
--- a/src/Mvc.ModelBinding.MultiParameter/GenericValueProvider.cs
+++ b/src/Mvc.ModelBinding.MultiParameter/GenericValueProvider.cs
@@ -45,8 +45,6 @@ public class GenericValueProvider(
/// <returns>null or object model of type</returns>
public object? GetModel(string key, Type t)
{
- //System.Diagnostics.Debug.WriteLine($"GetModel({key}) BIndingSource:{BindingSource.DisplayName}");
-
if (jsonDocument != null &&
jsonDocument.RootElement.ValueKind == JsonValueKind.Object &&
jsonDocument.RootElement.TryGetProperty(key, out JsonElement prop))
diff --git a/src/Mvc.ModelBinding.MultiParameter/Mvc.ModelBinding.MultiParameter.csproj b/src/Mvc.ModelBinding.MultiParameter/Mvc.ModelBinding.MultiParameter.csproj
index 1fc6d3e..9afe30e 100644
--- a/src/Mvc.ModelBinding.MultiParameter/Mvc.ModelBinding.MultiParameter.csproj
+++ b/src/Mvc.ModelBinding.MultiParameter/Mvc.ModelBinding.MultiParameter.csproj
@@ -20,6 +20,14 @@
<PackageIcon>icon.png</PackageIcon>
</PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
+ <NoWarn>1701;1702;IDE0130</NoWarn>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
+ <NoWarn>1701;1702;IDE0130</NoWarn>
+ </PropertyGroup>
+
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>