Успех обменивается сообщениями в противоположность образцовым сообщениям об ошибках состояния

Для сообщений об ошибках проверка дает сбой и т.д., Вы имеете

ModelState.AddErrorMessage("Fool!");

Но, где Вы помещаете ответы успеха как "Вы, успешно передал много денег к Вашему напр." + "Ваш баланс является теперь нулем". Я все еще хочу установить его на уровне контроллера и предпочтительно в значении ключа путь, тот же путь как errormessages, но не делая недействительным modelstate.

Как это обычно делается? ViewData?

18
задан Martin 26 January 2010 в 23:45
поделиться

3 ответа

Я бы заполнил TempData["успех"] (или какой бы ключ вы ни хотели дать) сообщением, которое я хочу отобразить внутри контроллера, а затем перенаправил бы его соответствующим образом (например, если я редактирую пользователя, я перенаправляю его обратно в список пользователей). Это зависит от шаблона POST/Redirect/GET - что в любом случае является хорошей практикой.

TempData["success"] = "Your Balance is now zero";

На главной странице у меня есть раздел, который проверяет эту переменную и отображает сообщение в красивом стиле div. Что-то вроде (может быть не 100% верно):

<% if(TempData["success"] != null) { %>
      <div id="SuccessMessage"><%= Html.Encode(TempData["success"]) %><div>
<% } %>
23
ответ дан 30 November 2019 в 08:03
поделиться

Я полагаю, вы можете проверить ModelState и установить переменную в вашей модели ...

public ActionResult MyAction(MyEntity model)
{
  //Here would be some validation, which returns with ModelState errors

  //Now set the validity of the modelstate as the IsValid property in your entity
  model.IsValid = ModelState.IsValid;

  return View(model);
}

В вашем режиме ...

<% if(Model.IsValid) { %>
  <p>You successfully transfered your balance to your ex.</p>
<% } %>

Редактировать: Учитывая ваш обновленный вопрос, я Думаешь, вы смотрите на неправильный подход. Я бы пошел вместе с другими ответами и следую PRG Pather . Это определенно имеет больше смысла, чем пытаться добавить поддельную ошибку.

7
ответ дан 30 November 2019 в 08:03
поделиться

Вы должны реализовать что-то вроде Post / Redirect / Get Pattern и «перенаправить» на другой вид в конце ваших методов действия, после проверки проверок все проверки, и все выполнено нормально. Вы можете пройти весь экземпляр объекта на центр назначения или просто пройти текстовое сообщение, или вы можете вытащить текст в самом центре назначения с Web.config или из файла ресурсов.

Например, у меня есть один вид в общей папке с именем «MechnsuckCess.aspx», на которую я перенаправляю для всех моих успешных редактиций и создает.

Вы «перенаправляете», как это

return View("ChangeSuccess", objectInstance);

(примечание: на самом деле не перенаправляется, см. Комментарии)

0
ответ дан 30 November 2019 в 08:03
поделиться
Другие вопросы по тегам:

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