C# MVC6 TagHelper的服务器端验证中出现错误的自定义错误消息

C# MVC6 TagHelper的服务器端验证中出现错误的自定义错误消息,c#,asp.net-core-mvc,tag-helpers,C#,Asp.net Core Mvc,Tag Helpers,在MVC6 TagHelper中,我为带有自定义错误消息的文本框和绑定模型创建了两个文本框,一个文本框的类型为string,另一个文本框的类型为int。在回发过程中,数据注释中指定的自定义错误消息未正确呈现为除string以外的其他类型 我的控制器是 public class HomeController : Controller { public IActionResult Index() { return View(); } [HttpPos

在MVC6 TagHelper中,我为带有自定义错误消息的文本框和绑定模型创建了两个文本框,一个文本框的类型为string,另一个文本框的类型为int。在回发过程中,数据注释中指定的自定义错误消息未正确呈现为除string以外的其他类型

我的控制器是

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public IActionResult Index(Sample model)
    {
        return View(model);
    }
}
模型类是

public class Sample
{
    [Required(ErrorMessage = "String value is needed")]
    public string StringValue { get; set; }

    [Required(ErrorMessage = "Int value is needed")]
    public int IntValue { get; set; }

}
我的Html标记帮助程序代码是

@model ValidationMessage.Models.Sample
<form method="post" action="/Home/Index">
    <label>String</label>
    <input asp-for="StringValue" type="text" />
    <span asp-validation-for="StringValue"></span>
    <br />

    <label>Int</label>
    <input asp-for="IntValue" type="text" />
    <span asp-validation-for="IntValue"></span>
    <br />

    <input type="submit" />
</form>
@model ValidationMessage.Models.Sample
一串

Int
如果单击submit按钮,我将单独检查服务器端验证 第一个文本框范围验证显示需要字符串值,但第二个文本框范围验证显示值“”无效。而不是需要Int值


有人能建议如何解决这个问题吗?

Make IntValue int?。并从输入中删除type=“text”。删除type=“text”也会得到同样的结果,IntValue是我的属性名称,它已经是int类型了。将它设置为可为null的int=>int?是的,这很有效,谢谢@KoenSIs有没有办法实现这一点而不将其设为可为null,因为在MVC5中,它对MVC6的工作很好,只有它这样显示。设置IntValue int?。并从输入中删除type=“text”。移除type=“text”也会得到同样的结果,IntValue是我的属性名称,它已经是int类型了。使它成为一个可为null的int=>int?是的,这很有效,谢谢@KoenSIs有任何方法可以实现这一点,而不使它为null,因为在MVC5中,它对MVC6的工作很好,只有它这样显示。