Как расширить помощника ValidationSummary HTML в ASP.NET MVC?

Этот метод позволяет указать начальный месяц квартала, а также предоставляет год (ы) для периода в целом.

    public string GetQuarterPeriod(DateTime date, int quarterStartMonth)
    {
        var quarterDateOffset = date.AddMonths(1 - quarterStartMonth);
        return $"Q{Math.Ceiling((decimal)quarterDateOffset.Month / 3)} {quarterDateOffset.Year}" 
               + (quarterStartMonth == 1 ? "" : $"/{quarterDateOffset.Year + 1}");
    }

Предоставление:

GetQuarterPeriod(new DateTime(2018, 4, 1), 4) -> "Q1 2018/2019"
GetQuarterPeriod(new DateTime(2018, 1, 1), 1) -> "Q1 2018"

Функция учитывает тот факт, что если месяц - январь (1), он ограничен одним годом.

14
задан craigmoliver 28 May 2009 в 02:40
поделиться

2 ответа

Мне пришлось расширить расширения сводки валидации в другом моем проекте, чтобы иметь дело с более чем одной формой на странице.

Хотя это другое, вы можете создать свой собственный метод расширения ...

namespace System.Web.Mvc
{
    public static class ViewExtensions
    {
        public static string MyValidationSummary(this HtmlHelper html, string validationMessage)
        {
            if (!html.ViewData.ModelState.IsValid)
            {
                return "<div class=\"validation-summary\">" + html.ValidationSummary(validationMessage) + "</div>"
            }

            return "";
        }
    }
}

Тогда просто позвоните в

<%= Html.MyValidationSummary(
    "Login was unsuccessful. Please correct the errors and try again.") %>

HTHs, Чарльз

24
ответ дан 1 December 2019 в 06:54
поделиться

Вы можете сделать следующее:

<%if (!ViewData.ModelState.IsValid) { %>
<div class="validation-summary"> 
    <%= Html.ValidationSummary(
        "Login was unsuccessful. Please correct the errors and try again.") %>
</div>
<% } %>
12
ответ дан 1 December 2019 в 06:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: