Here is my code. The JSON below is not correct but I think I am close. The controller is getting null data everytime. Any help would be appreciated.
$( "#btnRegister" ).click(function() {
var personModel = {
FirstName: $("#txtFirstName").val(),
LastName: $("#txtLastName").val(),
Phone: $("#txtPhone").val(),
EmailAddress: $("#txtEmail").val()
};
var loginModel = {
UserName: $("#txtUserName").val(),
Password: $("#txtPassword").val()
};
var registerViewModel = {
WebUser: loginModel,
Person: personModel
};
$.ajax({
url: "@Url.Action("Register", "User")",
type: 'POST',
data: registerViewModel,
success: function(result) {
alert(result);
}
});
});
[HttpPost]
public JsonResult Register(RegisterViewModel registerViewModel)
{
string name = registerViewModel.Person.FirstName;
string username = registerViewModel.WebUser.UserName;
return Json(name);
}
public class RegisterViewModel
{
public WebUser WebUser { get; set; }
public Person Person { get; set; }
}
public class WebUser
{
[Key]
public string UserId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
}
public class Person
{
[Key]
public int PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Phone { get; set; }
public string EmailAddress { get; set; }
public string EmailConfirmation { get; set; }
public DateTime DateCreated { get; set; }
public string UserId { get; set; }
}