开发者

Why doesn't this code work in another solution?

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.


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?


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜