Проверка MVC отображает сообщение об ошибке перед отправкой - PullRequest
0 голосов
/ 21 сентября 2019

У меня есть вид и модель, модель содержит вопросы и опору для хранения результатов по конкретному вопросу.Я не могу получить его для проверки вопросов, он всегда проходит проверку модели при отправке (внутри контроллера).Я проверил, что jquery, jqueryvalidate и jqueryunobrtusive включены в этот порядок, я попытался переместить Сводку внутри и снаружи формы, но это не помогло.После отправки он появляется так, как будто все верно, и сообщения отображаются при отображении представления.

public class Result
    {
        [Required]
        public int ResultID { get; set; }

        [Required]
        public string Text { get; set; }
    }

 public class Question
    {
        public int Id { get; set; }
        public string Text { get; set; }
        public Result Result{ get; set; }
    }

<div>
    @Html.ValidationSummary(true, "", new { @class = "text-danger" });
</div>

@using (Html.BeginForm("Submit", "post", FormMethod.Post, new { id = "Form" }))
{
    HtmlHelper.ClientValidationEnabled = true;
    HtmlHelper.UnobtrusiveJavaScriptEnabled = true;

    for (int i = 0; i < Model.Count; i++)
    {
        var item = Model[i];

            <div>

                <div>
                    @item.Text
                    @Html.TextBoxFor(m => m[i].Result.Text, null, new { @class = "form-control" })
                    @Html.ValidationMessageFor(m => m[i].Result.Text)
                    @Html.HiddenFor(m => m[1].Result.ResultID )
                </div>
            </div>
        }
    }

    <div>
        <input type="submit" value="Submit"/>
    </div>
}
       public ActionResult Index()
       {           
           List<Question> Questions = GetAllQuestions();

           return View("View", Questions);
       }

        public ActionResult Submit(List<Question> sQuestions)
        {

            if (!ModelState.IsValid)
            {
                return View("Index", );
            }

1 Ответ

0 голосов
/ 21 сентября 2019

Похоже, что ваша кнопка отправки не в вашей форме.

Удалите лишнюю закрывающую скобку, и она должна работатьИзвините, что не заметил этого раньше.Я только что сделал быстрое сравнение кода.

Вид должен выглядеть следующим образом:

@using (Html.BeginForm("Submit", "Home", FormMethod.Post, new { id = "Form" }))
{
    HtmlHelper.ClientValidationEnabled = true;
    HtmlHelper.UnobtrusiveJavaScriptEnabled = true;

    for (int i = 0; i < Model.Count; i++)
    {
        var item = Model[i];

        <div>

            <div>
                @item.Text
                @Html.TextBoxFor(m => m[i].Result.Text, null, new { @class = "form-control" })
                @Html.ValidationMessageFor(m => m[i].Result.Text)
                @Html.HiddenFor(m => m[i].Result.ResultID)
            </div>
        </div>
    }
    <div>
        <input type="submit" value="Submit" />
    </div>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...