我使用ASP.NET MVC 2,使用Visual Studio 2008,我的视图是强类型的。使用ValidationAnnotation
进行验证工作
我想要找到的是如何在打开表单时启动验证。当它打开时,模型有错误,但错误没有显示。当我按下提交按钮时,控制器验证模型并返回到表单。
Public Function EditVente(ByVal pNoEnreg As Integer) As ActionResult
Dim dossierVente As VenteDansMedianePlus = model.Helper.selectDossierVente(pNoEnreg)
Return View(dossierVente)
End Function
Public Function enregistrerVente(ByVal pVente As VenteDansMedianePlus) As ActionResult
If ModelState.IsValid Then
model.Helper.updateDossierVente(pVente)
Return RedirectToAction("EditVente", "A009P003", New With {Key .pNoEnreg = pVente.noEnreg})
Else
Return View("EditVente", pVente)
End If
End Function
我尝试将ModelState.IsValid
放入editVente
函数中,但它不起作用。
我的问题是如何在返回视图之前启动模型验证,因此视图会显示错误消息。
答案 0 :(得分:0)
我认为您正在寻找TryUpdateModel方法。您可以在控制器上调用此方法并传入您的模型:(抱歉,我是C#开发人员,希望这是正确的)
Public Function EditVente(ByVal pNoEnreg As Integer) As ActionResult
Dim dossierVente As VenteDansMedianePlus = model.Helper.selectDossierVente(pNoEnreg)
'Update the validation
TryUpdateModel(dossierVente)
Return View(dossierVente)
End Function
有关详细信息,请查看此SO帖子:When and why do you use TryUpdateModel in asp.net mvc 2?
修改强>
TryUpdateModel方法与UpdateModel方法大致相同,只是UpdateModel在验证失败时抛出错误,而TryUpdateModel则没有。