这是我的代码。下面的 JSON 不正确,但我认为我已经很接近了。 Controller 每次都获取空数据。任何帮助将不胜感激。
$( "#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; }
}
最佳答案
ajax部分需要像这样
$.ajax({
url: "@Url.Action("Register", "User")",
type: 'POST',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(registerViewModel),
success: function(result) {
alert(result);
}
});
希望这有帮助!
关于c# - 使用 Json 将具有两个对象的 View 模型传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22367659/