2015-02-09 4 views
0

У меня есть 2 метода - GET и POST. Метод GET заполняет форму, метод POST добавляет запись в БД. Оно работает. Но иногда метод POST получает ошибку (неверные данные, которые не могут быть проверены на стороне клиента и т. Д.), И я снова вызываю метод GET.ошибки пропуска между методами

Получ:

public ActionResult VacancyForm(int? ID, VacancyFormViewModel model) 
{ 
    if (model == null) 
     model = new VacancyFormViewModel(); 

POST Метод:

[HttpPost] 
public ActionResult VacancyForm(VacancyFormViewModel model) 
{ 
    if (surgeonSelected == null) // error case 
    { 
     return VacancyForm(null, model); 
    } 

Вопрос - как передать все ошибки от должности, чтобы получить?

+0

У вас нет! Добавьте ошибку в 'ModelState' и верните представление -' ModelState.AddModelError (string.Empty, "ваше сообщение об ошибке"); return View (model); '- не вызывать метод GET –

ответ

0

Вы можете использовать AddModelError метод ModelState, чтобы добавить их на стороне сервера в контроллере следующим образом:

[HttpPost] 
public ActionResult VacancyForm(VacancyFormViewModel model) 
{ 

    if (surgeonSelected == null) // error case 
    { 
     ModelState.AddModelError("SurgeonSelected ", "An error has occurred"); 
     return VacancyForm(model); 
    } 
} 

Это могут быть отображены вне через:

@Html.ValidationMessage("SurgeonSelected ") 

Если вы используете сильно типизированных вы можете использовать:

@Html.ValidationMessageFor(m => m.SurgeonSelected) 
0

Вы можете передать его в качестве аргумента:

public ActionResult VacancyForm(int? ID, VacancyFormViewModel model, string errorMessage = null) 
    { 
     if(errorMessage != null) 
      ModeState.AddModelError("", errorMessage); 

    } 

[HttpPost] 
public ActionResult VacancyForm(VacancyFormViewModel model) 
{ 

    if (surgeonSelected == null) // error case 
    { 
     string error = "You error message"; 
     return VacancyForm(null, model, error); 
    } 
} 
Смежные вопросы