我有两种方法 - GET和POST。 GET方法填写表单,POST方法向DB添加记录。有用。但有时POST方法会出错(无效数据,无法在客户端检查等),我再次调用GET方法。
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);
}
问题 - 如何将所有错误从帖子传递给get?
答案 0 :(得分:0)
您可以使用ModelState' AddModelError
方法在服务器端添加它们,如下所示:
[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 )
答案 1 :(得分: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);
}
}