0

VisualStudio2008でASP.NETMVC2を使用していますが、ビューは強く型付けされています。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.IsValideditVenteが、うまくいきません。

私の質問は、ビューを返す前にモデル検証を起動する方法です。そのため、ビューにはエラーメッセージが表示されます。

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 に答える