使用Json将具有两个对象的viewmodel传递给控制器 - c#

这是我的代码。下面的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; }
}

参考方案

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数组解析数据 - c#

我正在尝试搜索此Json代码以查找统计信息:{ "summonerId": 32033681, "modifyDate": 1403658807000, "champions": [{ "id": 40, "stats": { "totalSessi…

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

.get()之后,多处理陷入困境 - python

我试图了解multiprocessing如何在python中工作并遇到一些问题。这是示例:import multiprocessing def func(): return 1 p = multiprocessing.Pool() result = p.apply_async(func).get() 调用.get()函数时,代码只是卡住了。我究竟做错了什么?…

下载file_get_contents响应 - php

我有以下jQuery:$(".download").click(function(){ $.post('get_bot.php', "url_code="+url_code, function (response) { alert(response); }); }); url_code是一个具有js…