【发布时间】:2014-03-13 02:01:21
【问题描述】:
这是我的代码。下面的 JSON 不正确,但我认为我很接近。控制器每次都获取空数据。任何帮助将不胜感激。
$( "#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; }
}
【问题讨论】:
-
您是否考虑过 ASP.NET 无法处理反序列化对象的可能性?也许试试这个answer 并创建自己的操作方法参数绑定逻辑(也许使用 JSON.NET)。
-
否,下面的答案有效。
-
不确定是否是问题所在,但我想我会把它扔掉。很高兴有一个简单的解决方案可用。
标签: c# jquery ajax asp.net-mvc json