Для сообщений об ошибках проверка дает сбой и т.д., Вы имеете
ModelState.AddErrorMessage("Fool!");
Но, где Вы помещаете ответы успеха как "Вы, успешно передал много денег к Вашему напр." + "Ваш баланс является теперь нулем". Я все еще хочу установить его на уровне контроллера и предпочтительно в значении ключа путь, тот же путь как errormessages, но не делая недействительным modelstate.
Как это обычно делается? ViewData?
Я бы заполнил 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>
<% } %>
Я полагаю, вы можете проверить 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 . Это определенно имеет больше смысла, чем пытаться добавить поддельную ошибку.
Вы должны реализовать что-то вроде Post / Redirect / Get Pattern и «перенаправить» на другой вид в конце ваших методов действия, после проверки проверок все проверки, и все выполнено нормально. Вы можете пройти весь экземпляр объекта на центр назначения или просто пройти текстовое сообщение, или вы можете вытащить текст в самом центре назначения с Web.config или из файла ресурсов.
Например, у меня есть один вид в общей папке с именем «MechnsuckCess.aspx», на которую я перенаправляю для всех моих успешных редактиций и создает.
Вы «перенаправляете», как это
return View("ChangeSuccess", objectInstance);
(примечание: на самом деле не перенаправляется, см. Комментарии)