views:

97

answers:

2

I have the below code in my current solution, which returns an error of 'The value '' is invalid'. The below snippet has been shortened to just show the problem area as opposed to the entire ActionResult.

        Dim tComment As New hdComment

        tComment.Comment = collection("wmd-input")
        tComment.MadeOn = DateTime.Now
        tComment.UserID = Session("LoggedInUser")
        tComment.CallID = id

        If Not tComment.Comment.Trim().Length = 0 Then
            db.hdComments.InsertOnSubmit(tComment)
        End If

        db.SubmitChanges()

        Return Redirect("/Calls/Details/" & id)

However, in a previous project, I have used exactly the same code, even the view is the same, but it still returns the above error.

Everything is receiving a value ok.

The only thing that's different is that it's a different project.

I'm at a bit of a loss with this one.

Anyone have any ideas?


EDIT For reference, here is the entire ActionResult.

'
' POST: /Calls/Details/5
<Authorize()> _
<AcceptVerbs(HttpVerbs.Post)> _
<ValidateInput(False)> _
Function Details(ByVal id As Integer, ByVal collection As FormCollection) As ActionResult

    Dim calls As hdCall = callRepository.GetCall(id)

    ViewData("MyCallID") = calls.CallID
    ViewData("UserThatLogged") = calls.UserID

    ViewData("TimeLogged") = calls.loggedOn.ToLongDateString & " " & calls.loggedOn.ToLongTimeString
    ViewData("Title") = calls.Title

    Dim dataContext As New CustomerServiceModelDataContext
    ViewData("Status") = New SelectList(dataContext.hdStatus, "StatusID", "Status", calls.StatusID)
    ViewData("Type") = New SelectList(dataContext.hdCategories, "CategoryID", "Title", calls.CategoryID)
    ViewData("Company") = calls.hdCompany.Company
    ViewData("Priority") = New SelectList(dataContext.hdPriorities, "PriorityID", "Priority", calls.PriorityID)
    ViewData("CallDetails") = calls.CallDetails
    ViewData("Customer") = calls.hdCustomer.CustomerName
    ViewData("CustomerID") = calls.hdCustomer.CustomerID
    ViewData("CustomerCallCount") = callRepository.CountCallsForThisCustomer(calls.hdCustomer.CustomerID).Count()
    ViewData("ContactNumber") = calls.hdCustomer.Telephone
    ViewData("AssignedTo") = New SelectList(dataContext.aspnet_Users, "UserName", "UserName", calls.AssignedTo)


    Dim callComments = callRepository.GetCallComments(id)
    Dim db As New CustomerServiceModelDataContext

    Try
        Dim tComment As New hdComment

        tComment.Comment = collection("wmd-input")
        tComment.MadeOn = DateTime.Now
        tComment.UserID = Session("LoggedInUser")
        tComment.CallID = id

        If Not tComment.Comment.Trim().Length = 0 Then
            db.hdComments.InsertOnSubmit(tComment)
        End If

        'Update any call changes
        Dim tCall = (From c In db.hdCalls _
                     Where c.CallID = id _
                     Select c).SingleOrDefault


        tCall.updatedOn = DateTime.Now
        tCall.UpdatedBy = Session("LoggedInUser")
        tCall.StatusID = collection("Status")
        tCall.AssignedTo = collection("AssignedTo")
        tCall.CategoryID = collection("Type")
        tCall.PriorityID = collection("Priority")

        db.SubmitChanges()

        Return Redirect("/Calls/Details/" & id)

    Catch ex As Exception
        ModelState.AddModelError("Error", ex)
        Return View(callComments)
    End Try

    Return View(callComments)
End Function

The rest of the code works, if the wmd-input field is left blank on the form, it's only when there is something in it does it throw the error.

EDIT bit of an update to this, this line:

If Not tComment.Comment.Trim().Length = 0 Then

now reads

If (Not tComment.Comment.Trim().Length = 0) Then

and the page updates if nothing is in the wmd-input box, but if there is, it returns the The value '' is invalid.

A: 

You are probably missing a reference. Or the framework version is different.

Also is it the same development machine, is asp.net-mvc installed both places?

Shiraz Bhaiji
Yep, same machine with ASP.NET MVC 1.0.
Liam
Can you check if there is a difference in references in th e 2 projects.
Shiraz Bhaiji
Yep, references are identical.
Liam
A: 

I managed to fix this, the problem actually lay in the Foriegn Key Contraints between hdCalls and hdComments.

I removed the contraints and recreated them and all of a sudden it was fine.

Liam