使用 StringLength 进行模型验证不起作用?

问题描述 投票:0回答:1

在 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>
.net razor core
1个回答
0
投票

尝试如下代码:

@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>

结果:

© www.soinside.com 2019 - 2024. All rights reserved.