jquery.validation.netCore 6

jquery.validation .netCore 6

我创建了一个新的 .NET 6 项目。我把下面的代码放在索引中。

<form>
<input type="text" asp-for="Name" />
<input type="submit" />
</form>
<script src="~/lib/jquery/dist/jquery.min.js" ></script>
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js" ></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js" >
</script>

C#代码如下:

public class IndexModel : PageModel
{
    public string Name { get; set; }
    
    public void OnGet()
    {
        
    }
    public void OnPost(string Name)
    {
        
    }
}

当我运行浏览器中的项目时:

<main b-g6ltozs93r="" role="main" class="pb-3">
        <form novalidate="novalidate">
<input type="text" data-val="true" data-val-required="The Name field is required." id="Name" name="Name" value="">
<input type="submit">
</form>
<script src="/lib/jquery/dist/jquery.min.js"></script>
<script src="/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
</main>

我没有必填名称字段。 我该如何解决这个问题?

Nullable element 配置编译器如何解释类​​型的可空性以及发出的警告。 <Nullable>enable</Nullable>表示Non-nullable unless declared with ?。这里有两种解法:

1.Try 删除 .csproj 文件中的 <Nullable>enable</Nullable>

2.Add ?Name:

public string? Name { get; set; }

那么你的 html 代码中将不会有 data-val-required="The Name field is required."