c# - ASP.NET MVC Razor 日期时间验证错误消息
问题描述
所以adjournHearingInfo的newHearingDate当我没有填写为错误信息时
值 '' 无效。" 值为 "1/1/0001 12:00:00 AM"
我无法弄清楚如何访问此检查以更改此错误消息。或者,如果这不可能,请删除此检查,以便我可以自己验证日期,然后生成我想要的错误消息。这可能吗?
目前,我可以向其中添加另一条错误消息,但我无法删除该错误消息。
DTO:
public class AdjournHearingDTO
{
public int HearingID { get; set; }
[Required(ErrorMessage ="Please enter a Date")]
[Display(Name ="Additional Hearing Date")]
[Range(typeof(DateTime), "1/1/1900","1/1/2060", ErrorMessage =("Please enter a valid date."))]
public DateTime newHearingDate { get; set; }
}
.cshtml:
public AdjournHearingDTO adjournHearingInfo { get; set; }
public IActionResult OnPost()
{
if (ModelState.IsValid)
{
}
else
{
if (adjournHearingInfo.newHearingDate.Date.ToString() == "1/1/0001 12:00:00 AM")
{
ModelState.AddModelError("adjournHearingInfo.newHearingDate", "Invalid Date");
};
return Page();
}
}
HTML:
<form asp-page="AdjournHearing" method="post" name="AdjournHearingScreen" id="AdjournHearingForm">
@if (!Model.ModelState.IsValid)
{
<div class="row">
<div class="col-md-offset-2 col-md-10">
<h3 class="text-danger">Validation Errors</h3>
@*@Html.ValidationSummary(true, "", new { @class = "text-danger"})*@
<div asp-validation-summary="All"></div>
</div>
</div>
}
<div class="container">
<h1 class="mt-4 mb-3">
<button asp-page-handler="Back" class="btn btn-secondary">Back</button>
</h1>
<div class="row">
<div>
<h4>Case: @Model.HearingDetail.CaseName</h4>
<h5>
Hearing: @Model.HearingDetail.Name
</h5>
<div class="row">
<div class="card RoundedCorners">
<h6>Hearing Date: @Model.NewestHearingDate.ToString("g")</h6>
<div class="form-group">
<label asp-for="adjournHearingInfo.newHearingDate" class="control-label"></label>
<input asp-for="adjournHearingInfo.newHearingDate" class="form-control" />
<span asp-validation-for="adjournHearingInfo.newHearingDate" class="text-danger"></span>
</div>
<div class="" style="padding:1em 0 0 0;">
<button id="SubmitButton" class="btn btn-primary" type="submit"> Submit </button>
<button id="SubmitButtonDisabled" disabled style="display:none" class="btn btn-primary" type="submit"> Submit </button>
</div>
</div>
</div>
</div>
</div>
</div>
<input asp-for="HearingDetail.HearingID" type="hidden" />
</form>
解决方案
转到 wwwroot\lib\jquery-validation\dist\additional-methods.js 并找到
$.validator.messages.date );
尝试只删除消息或整行,看看它是否有效。
推荐阅读
- r - How to split an existing column into three and then append it to the data set?
- jestjs - Only show failures in `jest --watch`?
- python - How to filter list items based on regex in python?
- python - Finding the area of an overlap between curves (python)
- javascript - 使用 DiscordJS 在聊天中获取表情符号图像的最佳方法是什么?
- android - How to generate icons with cordova-res in Capacitor
- algorithm - 如果不只是在伪代码中调用函数,而是编写一个返回函数(尤其是关于 CLR),那是否有意义?
- sql - 按顺序包含两个单词的实体框架选择列
- r - 润滑周期的绝对值
- javascript - 如何为具有不同位置的元素设置动画以向同一个位置/元素移动?