ValidationSummary не отображает ошибки, добавленные ModelState.AddModelError - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь добавить пользовательское сообщение об ошибке в представление. Этот вид является частичным рендером с вкладками. Мне пришлось вызвать метод для обработки формы, а затем использовать TempData для хранения ошибки и перенаправить на оригинальный метод, который загружает проверку формы для tempData и добавление ошибки, если она присутствует.

Я попытался установитьПроверка на истину и ложь не сработала. Я также пытался использовать ViewBag, но он тоже не отображается.

@{ Html.RenderPartial("~/Views/Partial/TabView.cshtml", "ID title"); }
<div class="">
    <div class="section-title">
        Title
    </div>
    <div>
        @Html.ValidationSummary()
    </div>
    <div class="row-fluid">
        <div class="row-fluid">
            <div class="row-fluid">
                ....Fields
            </div>
            <div class="row-fluid">
                ...More Fields 
            </div>
            <br /><br /><br />
            <div class="row-fluid">
                <div class="span2">
                    <span class="">Id</span>
                    <div>
                        @Html.TextBoxFor(m => m.Id, new { @class = "input-block-level" })
                        @Html.ValidationMessageFor(m => m.Id, "", new { @class = "text-danger" })
                    </div>
                </div>
            </div>
            <div class="row-fluid">
                <div class="span2">
                    <span class="participation-search-form-title">Password</span>
                    <div>
                        @Html.TextBoxFor(m => m.Password, new { @class = "input-block-level" })
                        @Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" })
                    </div>
                </div>
            </div>
            <div class="row-fluid margin-top">
                <div class="pull-right">
                    ...Submit buttons
                </div>
            </div>
        </div>
    </div>
</div>
TO process form
[HttpPost]
public ActionResult CreateUserAccountApprovalForm(int Id)
{
        //Create User
        if (approval)
        {
            var result = CreateUser();
            if (!result)
            {
                ViewModel vm = new ViewModel();
                vm.Id = Id;
                TempData["CustomError"] = "error";
                return RedirectToAction("Compare", new { id = Id });
            }
        }

        return RedirectToAction("Index");
 }
 TO load form
public ActionResult Compare(int id)
    {
        //Check if error present from Create Account
        if (TempData["CustomError"] != null)
        {
            //ModelState.AddModelError(string.Empty, TempData["CustomError"].ToString());
            ModelState.AddModelError("", "This email is already taken.");
            ViewBag.message = "show this please...";
        }

        var vm = new ViewModel();

        return View(vm);
    }

Я ожидал появления ошибки в некотором роде в верхней части экрана. Пожалуйста, все, что может помочь, я потерял и пытался заставить это работать дольше, чем ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...