1
我有一个控制器的ActionResult,看起来像这样数据库从控制器传递对象时,到资源库
Function Edit(ByVal user As Domain.User, ByVal id As Integer) As ActionResult
Dim _user As Domain.User = user
If ModelState.IsValid Then
If Not String.IsNullOrEmpty(user.UserName) AndAlso _
Not String.IsNullOrEmpty(user.WebSite) AndAlso _
Not String.IsNullOrEmpty(user.Email) AndAlso _
Not String.IsNullOrEmpty(user.About) AndAlso _
Not user.Region Is Nothing AndAlso _
Not user.BirthDate Is Nothing AndAlso _
Not user.isProfileComplete = True Then
_user.isProfileComplete = True
_user.Reputation = user.Reputation + 10
UserService.UpdateUser(_user)
Else
UserService.UpdateUser(_user)
End If
UserService.SubmitChanges()
Session("UserInfo") = Nothing
Return RedirectToAction("Details", "Users", New With {.id = id, .slug = user.UserName})
Else
Return View(user)
End If
End Function
它去服务进行验证后,更新不正确的值,它被传递到看起来像库这
Public Sub UpdateUser(ByVal user As User) Implements IUserRepository.UpdateUser
Dim _user = (From u In dc.Users
Where u.ID = user.ID
Select u).Single
With _user
.About = user.About
.BirthDate = user.BirthDate
.Email = user.Email
.isClosed = user.isClosed
.isProfileComplete = user.isProfileComplete
.RegionID = user.RegionID
.Reputation = user.Reputation
.UserName = user.UserName
.WebSite = user.WebSite
End With
End Sub
我遇到的问题是与三个字段。
isProfileComplete
,isClosed
& Reputation
都变得“更新”为“NULL”。
我甚至试图在视图中创建隐藏的字段来包含数据,但我没有做任何事似乎正确地通过这三个字段。所有其他字段更新没有问题。
有谁能告诉我我错过了什么吗?