我在对象“数据”中有一个用户输入列表。 (例如 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
});
