Я новичок в ASP.Net MVC 5 и хочу знать, как отображать сводку проверки «Заголовок сообщения» вверху страницы над всеми ошибками.

Ниже то, что у меня есть до сих пор:

Просмотр:

@model WebApplication3.Models.Form
@using (Html.BeginForm()) 
{
    @Html.AntiForgeryToken()
    <div class="form-horizontal">
        <h4>Form</h4>
        @* first parameter false means show all the errors *@
        @* second parameter means the message to display as Header on top*@
        @Html.ValidationSummary(false,"Fix below error", new { @class = "text-danger" })
        <div class="form-group">
            @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessageFor(model => model.Name, "*", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.age, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.age, new { htmlAttributes = new { @class = "form-control" } })
                @*star meaning show the star sign to keep show field required.  *@
                @Html.ValidationMessageFor(model => model.age, "*", new { @class = "text-danger" })
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </div>
}

@* CLIENT SIDE VALIDATION*@
@section Scripts
 {
 @Scripts.Render("~/bundles/jqueryval")
 }

Модель

 public class Form
    {
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
        [Required]
        [Remote("IsAgeUnique", "Form", ErrorMessage = "Age is not unique")]
        public int age { get; set; }
    }

P.S: Я использовал подстановочный знак @Html.ValidationMessageFor(prop, "*") для каждого свойства, чтобы отображать звездочку в поле пользовательского интерфейса.

Проблема: Когда страница загружается, на странице уже отображается заголовок ошибки. По функциональности все работает нормально. Но при начальной загрузке страницы почему отображается сообщение "Заголовок"

enter image description here

2
Unbreakable 3 Авг 2017 в 22:03

1 ответ

Лучший ответ

Вы можете попробовать добавить правило css, подобное приведенному ниже, чтобы изначально сделать часть ошибки заголовка невидимой.

Текст сводки проверки изначально имеет класс validation-summary-valid. Если есть какие-то ошибки, он становится validation-summary-errors, поэтому ваше начальное значение не имеет ошибок, я думаю, вы можете использовать правило css

.validation-summary-valid {
    display:none;
}
2
hasan 3 Авг 2017 в 22:39
Но почему я столкнулся с проблемой. Я не понимаю. Это основная форма, и я не должен был сталкиваться с какими-либо проблемами. Какова настоящая причина. : - |
 – 
Unbreakable
3 Авг 2017 в 22:24
Текст сводки проверки изначально имеет класс validation-summary-valid, если есть какие-то ошибки, он становится validation-summary-errors, поэтому ваше начальное значение не имеет ошибок, я думаю, вы можете использовать правило css
 – 
hasan
3 Авг 2017 в 22:26
Вы можете проверить эти два вопроса stackoverflow.com/questions/21296281/… stackoverflow.com/questions/4166997/…
 – 
hasan
3 Авг 2017 в 22:33
Добро пожаловать:). Пожалуйста, примите ответ, чтобы помочь людям понять, что проблема решена.
 – 
hasan
3 Авг 2017 в 22:40