在 Visual studio 2022 中,我创建了一个 asp.net core razor 页面应用程序,发现当文本字符串超过最大限制时,使用 StringLength 属性的模型字符串验证不会显示错误消息,而只允许在内容视图上输入最大大小。我的代码有什么问题吗?
public class Student
{
[StringLength(20, ErrorMessage = "{0} length must be between {2} and {1}.", MinimumLength = 2)]
public string Name { get; set; }
}
<form method="post">
<table border="0">
<tr>
<td class="right">
<label asp-for="Students.Name"></label> :
</td>
<td>
<input type="text" asp-for="Students.Name" />
<span asp-validation-for="Students.tName" class="message"></span>
</td>
</tr>
<tr>
<td colspan="2">
<button type="submit">Save</button>
</td>
</tr>
</table>
尝试如下代码:
@model Student
<form method="post">
<table border="0">
<tr>
<td class="right">
<label asp-for="Name"></label> :
</td>
<td>
<input type="text" asp-for="Name" />
<span asp-validation-for="Name" class="message"></span>
</td>
</tr>
<tr>
<td colspan="2">
<button type="submit">Save</button>
</td>
</tr>
</table>
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.3/jquery.validate.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.12/jquery.validate.unobtrusive.js"></script>