diff --git a/src/Components/Web/src/Forms/InputNumber.cs b/src/Components/Web/src/Forms/InputNumber.cs index 4f0377ceed..5b2a08a3b8 100644 --- a/src/Components/Web/src/Forms/InputNumber.cs +++ b/src/Components/Web/src/Forms/InputNumber.cs @@ -21,6 +21,7 @@ namespace Microsoft.AspNetCore.Components.Forms // of it for us. We will only get asked to parse the T for nonempty inputs. var targetType = Nullable.GetUnderlyingType(typeof(TValue)) ?? typeof(TValue); if (targetType == typeof(int) || + targetType == typeof(long) || targetType == typeof(float) || targetType == typeof(double) || targetType == typeof(decimal)) diff --git a/src/Components/test/E2ETest/ServerExecutionTests/GlobalizationTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/GlobalizationTest.cs index ed045a6383..76a01c13f3 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/GlobalizationTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/GlobalizationTest.cs @@ -174,6 +174,18 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests Browser.Equal(9000.ToString(cultureInfo), () => display.Text); Browser.Equal(9000.ToString(CultureInfo.InvariantCulture), () => input.GetAttribute("value")); + // long + input = Browser.FindElement(By.Id("inputnumber_long")); + display = Browser.FindElement(By.Id("inputnumber_long_value")); + Browser.Equal(4200.ToString(cultureInfo), () => display.Text); + Browser.Equal(4200.ToString(CultureInfo.InvariantCulture), () => input.GetAttribute("value")); + + input.Clear(); + input.SendKeys(90000000000.ToString(CultureInfo.InvariantCulture)); + input.SendKeys("\t"); + Browser.Equal(90000000000.ToString(cultureInfo), () => display.Text); + Browser.Equal(90000000000.ToString(CultureInfo.InvariantCulture), () => input.GetAttribute("value")); + // decimal input = Browser.FindElement(By.Id("inputnumber_decimal")); display = Browser.FindElement(By.Id("inputnumber_decimal_value")); diff --git a/src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor b/src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor index 671049d358..5294f2b1df 100644 --- a/src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor +++ b/src/Components/test/testassets/BasicTestApp/GlobalizationBindCases.razor @@ -62,6 +62,10 @@ int: @inputNumberInt +
+ long: + @inputNumberLong +
decimal: @inputNumberDecimal @@ -99,6 +103,7 @@ DateTimeOffset inputTypeDateDateTimeOffset = new DateTimeOffset(new DateTime(1985, 3, 4)); int inputNumberInt = 42; + long inputNumberLong = 4200; decimal inputNumberDecimal = 4.2m; DateTime inputDateDateTime = new DateTime(1985, 3, 4);