asp.net mvc如何在渲染之前启动对象的验证

时间:2012-05-29 21:31:44

标签: asp.net-mvc validation modelstate

我使用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函数中,但它不起作用。

我的问题是如何在返回视图之前启动模型验证,因此视图会显示错误消息。

1 个答案:

答案 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则没有。