0

我使用 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功能,但它不起作用。

我的问题是如何在返回视图之前启动模型验证,所以视图有错误消息。

4

1 回答 1

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 帖子:您何时以及为什么在 asp.net mvc 2 中使用 TryUpdateModel?

编辑

TryUpdateModel 方法的工作原理与 UpdateModel 方法大致相同,只是 UpdateModel 在验证失败时会抛出错误,而 TryUpdateModel 则不会。

于 2012-05-29T21:57:03.567 回答