【问题标题】:How to pass multiple values as single object in Javascript/Ajax如何在 Javascript/Ajax 中将多个值作为单个对象传递
【发布时间】:2013-05-29 04:34:37
【问题描述】:

我是 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 });

}

我也想知道有没有办法将这些值直接与我的服务器端对象结合起来

用户.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; }

}

【问题讨论】:

标签: javascript asp.net-mvc-4


【解决方案1】:

试试下面的代码。对名为 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;
    }

【讨论】:

  • 要获取 User 对象中的值,属性名称应与 JavaScript 对象中的名称和参数名称匹配。你能分享你的User类定义吗?
  • 感谢问题中添加的用户类定义的响应
  • 'function create() { var user = { 'EmailID': $('#emailid').val(), 'password': $('#password').val() } $.ajax({ url: '/EmberNew/Home/Create', type: 'POST', data: { user:user }, success: function (response) { alert("hi"); } });返回假; }' 更改了代码但不起作用
  • 在你的类定义中只有三个属性,所以你只能在控制器中获得这三个。查看更新的答案
  • 更新了用户模型但问题仍然存在脚本中的值绑定没有任何问题但是当它将该对象传递给服务器时它显示空值
猜你喜欢
  • 2019-08-30
  • 1970-01-01
  • 2018-01-10
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
  • 2010-12-05
相关资源
最近更新 更多