我正在学习一门关于Pluralsight的asp.net核心课程https://app.pluralsight.com/library/courses/aspnetcore-mvc-efcore-bootstrap-angular-web/table-of-contents),我们开发了一个完整的网络应用程序,目前,在联系人表格的验证章节中,我遇到的问题是我有一个文本区域,无论何时超过最大长度,你都应该可以在其中写入,但会出现错误,当你删除到最大长度时,错误应该会消失,但在我的情况下,我不能写入超过最大长度的任何内容,从而使得验证错误根本不出现。
contact.cshtml
@model ContactViewModel;
@{
ViewBag.Title = "Contact us";
}
@section Scripts{
<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js"></script>
}
<form method="post">
<div asp-validation-summary="ModelOnly"></div>
<label asp-for="Name">Your name:</label>
<br />
<input asp-for="Name" />
<span asp-validation-for="Name"></span>
<br />
<label asp-for="Email">Email:</label>
<br />
<input type="email" asp-for="Email" />
<span asp-validation-for="Email"></span>
<br />
<label asp-for="Subject">Subject:</label>
<br />
<input type="text" asp-for="Subject" />
<span asp-validation-for="Subject"></span>
<br />
<label asp-for="Message">Message:</label>
<br />
<textarea rows="4" asp-for="Message"></textarea>
<span asp-validation-for="Message"></span>
<br />
<input type="submit" value="Send Message" />
</form>
这是我的视图模型文件ContactViewModel.cs
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DutchTreat.ViewModels
{
public class ContactViewModel
{
[Required]
[MinLength(5,ErrorMessage ="Too short!")]
public string Name { get; set; }
[Required]
[EmailAddress]
public string Email { get; set; }
[Required]
public string Subject { get; set; }
[Required]
[MaxLength(10,ErrorMessage ="Too long!")]
public string Message { get; set; }
}
}
以下是一个片段,显示了其他错误是如何工作的
我试着用StringLength代替MaxLength,我在谷歌上搜索了一下,但找不到答案我有什么东西不见了吗?如果你需要额外的代码,我可以提供
这就是MaxLength和StringLength数据注释的工作方式。如果您仔细检查生成的html,它会将maxlength属性添加到您的消息文本区域。您的需求的另一种选择可以是手动将maxlength添加到您喜欢的某个更大的值。
<textarea rows="4" asp-for="Message" maxlength="100">