Почему этот код не работает в другом решении? - PullRequest
0 голосов
/ 23 октября 2009

У меня есть следующий код в моем текущем решении, которое возвращает ошибку «Значение» «неверно». Приведенный ниже фрагмент кода был сокращен, чтобы показать только проблемную область, а не весь 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)

Однако в предыдущем проекте я использовал точно такой же код, даже представление такое же, но оно по-прежнему возвращает вышеуказанную ошибку.

Все получает значение в порядке.

Единственное, что отличается, это то, что это другой проект.

Я немного растерялся с этим.

У кого-нибудь есть идеи?


РЕДАКТИРОВАТЬ Для справки, вот весь 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

Остальная часть кода работает, если поле wmd-input оставлено пустым на форме, это только когда что-то есть, оно выдает ошибку.

РЕДАКТИРОВАТЬ бит обновления этой строки:

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

теперь читает

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

и страница обновляется, если в поле wmd-input ничего нет, но если она есть, возвращается The value '' is invalid.

Ответы [ 2 ]

0 голосов
/ 23 октября 2009

Мне удалось это исправить, проблема фактически заключалась в Foriegn Key Contraints между hdCalls и hdComments.

Я снял ограничения и воссоздал их, и вдруг все было хорошо.

0 голосов
/ 23 октября 2009

Возможно, вам не хватает ссылки. Или версия фреймворка другая.

Также это одна и та же машина для разработки, asp.net-mvc установлен в обоих местах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...