How to Validate Forms with ASP.NET MVC 2 Data Annotations: Listing 1.

The Index() and Edit() Methods for the Customer Controller

Dim DBContext As New Database1DataContext

        ' GET: /Customer
        Function Index() As ActionResult
            Dim customers As List(Of Customer) = 
              DBContext.Customers.ToList()
            Return View(customers)
        End Function

        ' GET: /Customer/Edit/5
        Function Edit(ByVal id As Integer) As ActionResult
            Dim CustomerRecord As Customer =
                (From item In DBContext.Customers
                Where item.CustomerId = id
                Select item).SingleOrDefault

            If (IsNothing(CustomerRecord)) Then _
                Return View("CustomerNotFound")

            Return View(CustomerRecord)
        End Function

        ' POST: /Customer/Edit/5
        <HttpPost()> _
        Function Edit(
                      ByVal id As Integer,
                      ByVal CustomerData As Customer) As ActionResult
            Dim CustomerRecord As Customer = Nothing
            Try
                CustomerRecord =
                                (From item In DBContext.Customers
                                Where item.CustomerId = id
                                Select item).SingleOrDefault

                If (ModelState.IsValid) Then
                    UpdateModel(CustomerRecord)
                    DBContext.SubmitChanges()
                    Return RedirectToAction("Index", "Home")
                Else
                    Return View(CustomerRecord)
                End If
            Catch ex As Exception
                ModelState.AddModelError("GeneralError", 
                  "Error Updating Database: " & ex.Message)
                Return View()
            End Try
        End Function