Изменить сообщение проверки в MVC во время выполнения - PullRequest
0 голосов
/ 18 июня 2019

У меня есть сообщение для проверки того, где мне нужно изменить текст сообщения об ошибке во время выполнения (когда они нажимают кнопку отправки).

Исходя из того, что передано идентификатору, пользователь должен отправить XML или запрос.

Если они отправят запрос, я хочу, чтобы он сказал: «Требуется запрос».

Если они отправят xml, я хочу сказать: «Требуется XML».

Я пытался очистить ModelState.Clear ();

Я пытался НЕ устанавливать второй параметр в ValidationMessageFor () ... (обычно это "", но когда я пытаюсь установить его внутри, он автоматически отображается на странице при загрузке страницы)

        @Html.ValidationMessage("RawXmlOrQueryText", string.Format("The {0} field is required.", Model.Label), new { @class = "text-danger" })

если я делаю что-то подобное, то никогда не показывается точка:

 @Html.ValidationMessageFor(m => m.RawXmlOrQueryText, string.Format("The {0} field is required.", Model.Label), new { @class = "text-danger", style = "display:" + "none" + ";" })

Есть ли лучший способ сделать это?

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

1 Ответ

0 голосов
/ 18 июня 2019

Вы в порядке с использованием AddModelError () ?

Предполагается, что вы используете эту модель:

public class IndexModel
{
    public string QueryText { get; set; }
} 

В своем методе записи добавьте следующий код:

var isXML = true; //oversimplification of your validation code
var someErrorMsg = isXML ? "The XML is required." : "The Query is required.";
ModelState.AddModelError(nameof(model.QueryText), someErrorMsg);
return View(model);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...