这不是错误。 Asp.net Core 将十进制类型映射到文本字段:
见InputTagHelper.cs
private static readonly Dictionary<string, string> _defaultInputTypes =
new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
{ "HiddenInput", InputType.Hidden.ToString().ToLowerInvariant() },
{ "Password", InputType.Password.ToString().ToLowerInvariant() },
{ "Text", InputType.Text.ToString().ToLowerInvariant() },
{ "PhoneNumber", "tel" },
{ "Url", "url" },
{ "EmailAddress", "email" },
{ "Date", "date" },
{ "DateTime", "datetime" },
{ "DateTime-local", "datetime-local" },
{ "Time", "time" },
{ nameof(Byte), "number" },
{ nameof(SByte), "number" },
{ nameof(Int16), "number" },
{ nameof(UInt16), "number" },
{ nameof(Int32), "number" },
{ nameof(UInt32), "number" },
{ nameof(Int64), "number" },
{ nameof(UInt64), "number" },
{ nameof(Single), InputType.Text.ToString().ToLowerInvariant() },
{ nameof(Double), InputType.Text.ToString().ToLowerInvariant() },
{ nameof(Boolean), InputType.CheckBox.ToString().ToLowerInvariant() },
{ nameof(Decimal), InputType.Text.ToString().ToLowerInvariant() },
{ nameof(String), InputType.Text.ToString().ToLowerInvariant() },
{ nameof(IFormFile), "file" },
{ TemplateRenderer.IEnumerableOfIFormFileName, "file" },
};