【问题标题】:ASP.NET MVC Razor DateTime Validation Error MessageASP.NET MVC Razor 日期时间验证错误消息
【发布时间】:2021-12-14 19:29:00
【问题描述】:

所以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>

【问题讨论】:

    标签: c# html asp.net-mvc razor


    【解决方案1】:

    转到 wwwroot\lib\jquery-validation\dist\additional-methods.js 并找到

    $.validator.messages.date );
    

    尝试只删除消息或整行,看看是否有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-26
      • 2020-07-18
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      相关资源
      最近更新 更多