如何在Javascript/Ajax中作为单个对象传递多个值

如何在Javascript/Ajax中作为单个对象传递多个值,javascript,asp.net-mvc-4,Javascript,Asp.net Mvc 4,我是javascript和MVC新手,我正在开发一个包含注册页面的示例应用程序,我正在使用ajax来完成这个过程,下面给出了我当前的代码 function create() { var user_name = $("#txtUser").val(); var pass = $("#txtPass").val(); var email = $("#txtEmail").val(); var phone = $("#txtPhone

我是javascript和MVC新手,我正在开发一个包含注册页面的示例应用程序,我正在使用ajax来完成这个过程,下面给出了我当前的代码

  function create() {
        var user_name = $("#txtUser").val();
        var pass = $("#txtPass").val();
        var email = $("#txtEmail").val();
        var phone = $("#txtPhone").val();
        var city = $("#txtCity").val();
        var state = $("#txtState").val();
        var zip = $("#txtZip").val();
        $.ajax({
            url: '/EmberNew/Home/Create',
            type: 'POST',
            data: { user_name: user_name, pass: pass,email:email,phone:phone,city:city,state:state,zip:zip },
            success: function (response) {
                alert("success");
            }
        });
        return false;
    }
工作正常,但我想知道,有没有办法像在C#中一样将这些值作为单个对象传递?如果这个问题太傻,请原谅

服务器端代码

[HttpPost]
public ActionResult Create(User user)
{
    UserDL newUser = new UserDL();
    newUser.SignUp(user);

    return Json(new { success = true });

}
我还想知道是否有任何方法可以将这些值直接与我的服务器端对象组合在一起

User.cs

public class User
{
    public virtual int ID { get; set; }
    public virtual string UserName { get; set; }
    public virtual string Password { get; set; }
    public virtual string EmailID { get; set; }
    public virtual int Phone { get; set; }
    public virtual string City { get; set; }
    public virtual string State { get; set; }
    public virtual int Zip { get; set; }

}

试试下面的代码。在单个名为data的对象中创建所有变量并传递它

function create() {

        var data = {
            'UserName': $("#txtUser").val(),
            'Password': $("#txtPass").val(),
            'EmailID': $("#txtEmail").val(),
            'Phone': $("#txtPhone").val(),
            'City': $("#txtCity").val(),
            'State': $("#txtState").val(),
            'Zip': $("#txtZip").val()
        };
        $.ajax({
            url: '/EmberNew/Home/Create',
            type: 'POST',
            data: data ,
            success: function (response) {
                alert("success");
            }
        });
        return false;
    }

看看这个。(我假设您使用的是jquery)要获取
User
对象中的值,属性名应该与JavaScript对象中的名称以及参数名匹配。你能分享你的
User
类定义吗?谢谢你在问题'function create(){var User={'EmailID':$('#EmailID').val(),'password':$('#password').val()}$.ajax'中对用户类定义的回答({url:'/EmberNew/Home/Create',键入:'POST',数据:{user:user},成功:函数(响应){alert(“hi”);};返回false;}'更改了代码但不工作在您的类定义中只有三个属性,因此您只能在控制器中获得这三个属性。请参阅更新的应答更新了用户模型,但问题仍然存在脚本中的值绑定没有任何问题,但当它将该对象传递给服务器时,它显示空值