Skip to main content
 首页 » 编程设计

javascript之通过 ajax 发送多个对象(使用 Angular )

2024年01月31日30lyj

我在对象“数据”中有一个用户输入列表。 (例如 data.username、data.password、data.age)

我正在使用 angular 像这样将数据对象传递到后端。

var submits = "=" + JSON.stringify(data); 
 
$.ajax({ 
            type: "POST", 
            url: serviceURL, 
            data: submits 
}); 

我正在传递另外两个对象。选择和网格。我怎样才能在一个 ajax 调用中将所有这三个一起传递?还是我必须独立转移它。如果我单独传输这些细节,它会影响性能吗?

我可以做这样的事情来在一个 ajax 调用中一起发送对象吗?

var data = {}; 
data[0] = data1; 
data[1] = data2; 

如果它们一起传递,我如何使用 C# 在服务器端单独检索它们。

这是我需要传递的 3 个对象

data -->>         ["Raul","New York","31"] 
selections-->>    ["dy.txt","my.txt","yy.txt"] 
grid-->           ["sesion","id"] 

请您参考如下方法:

假设你的服务器端有这样一个 View 模型

public class CreateUserViewModel 
{ 
  public string UserName{set;get;} 
  public string Location {set;get;} 
  public int Age {set;get;} 
} 
public class RegisterViewModel 
{ 
  public CreateUserViewModel User {set;get;} 
  public List<string> Selections {set;get;} 
  public List<string> Grid {set;get;} 
} 

和像这样的 MVC 操作方法

public ActionResult Create(RegisterViewModel model) 
{ 
  // read model and save and return some JSON response 
} 

您可以简单地构建与 View 模型结构匹配的 javascript 对象,并使用 angualr 的 $http 服务发布它。无需担心设置内容类型或 Json 字符串化它。 Angualr 会处理它。

var model={ User : {} ,Selections :[], Grid=[] }; 
model.User.Age =23; 
model.User.UserName ="test"; 
model.User.Location="New York"; 
 
model.Selections.push("dy.txt"); 
model.Selections.push("some.txt"); 
 
model.Grid.push("session"); 
model.Grid.push("id"); 
 
var url="replcaeUrltoYourActionMethodHere"; 
 
$http.post(url, model) 
.then(function(response) 
{ 
  // do something with the response 
  // var result= response.data 
});