Передаю информацию из моего form
в мой WebMethod
. Цель состоит в том, чтобы заполнить объект UseInfo
данными из формы, а также заполнить некоторые свойства, которые я добавил в классе NewUser
, которые также передаются из запроса ajax.Прохождение нескольких объектов от Ajax до WebMethod
Когда у меня есть входной параметр UserInfo
, объект успешно заполняется после сообщения ajax. Однако, если у меня есть объект NewUser, заполняется только свойство Relationship
, но объект UserInfo
отображается как Nothing.
Любые идеи, что я делаю неправильно? Нужно ли мне задавать другую структуру для моего класса NewUser
?
NEWUSER класс
Public Class NewUser
Public Property UserInfo As UserInfo
Get
Return _UserInfo
End Get
Set(value As UserInfo)
_UserInfo = value
End Set
End Property
Private _UserInfo As UserInfo
Public Property Relationship As String
Get
Return m_Relationship
End Get
Set(value As String)
m_Relationship = value
End Set
End Property
Private m_Relationship As String
End Class
WebMethod
<HttpPost>
<ValidateAntiForgeryToken>
<DnnModuleAuthorize(AccessLevel:=SecurityAccessLevel.View)>
Public Function AddUserDependant(<FromBody> oNewUser As NewUser) As HttpResponseMessage
Try
If Me.UserInfo.IsInRole("Carer") Then
UsersControllerOmni.CreateDnnUser(oNewUser.UserInfo)
Return Request.CreateResponse(HttpStatusCode.OK)
Else
Return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "")
End If
Catch ex As Exception
Return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)
End Try
End Function
AJAX
$.ajax({
type: "POST",
cache: false,
url: serviceUrl + "/ModuleTask/AddUserDependant",
beforeSend: sf.setModuleHeaders,
contentType: "application/json; charset=utf-8",
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
data: $("form").serialize()
}).done(function (result) {
}).fail(function (xhr, result, status) {
alert(result);
});
Ваш подход, что я сделал в одной точке. Однако в итоге я изменил такие поля, как: name = "UserInfo [Profile] [Cell]". Кроме того, я добавил отдельный класс для каждого поля class = "myform", и я сериализую форму: var frm = $ ('form .myform'). Serialize(); my ajax: данные: frm – alwaysVBNET