我正在使用 ASP.NET MVC 和 jQuery 通过 AJAX 调用保存一些数据。我目前使用 jQuery ajax() 函数像这样传递一些 JSON 数据
$.ajax({
dataType: 'json',
type: 'POST',
url: '@Url.Action("UpdateName", "Edit")',
data: {
id: 16,
name: 'Johnny C. Bad'
}
});
使用这个控制器方法和助手类。
public void UpdateName(Poco poco)
{
var person = PersonController.GetPerson(poco.Id);
person.Name = poco.Name;
PersonController.UpdatePerson(person);
}
public class Poco
{
public int Id { get; set; }
public string Name { get; set; }
}
接受 JSON 数据的另一种方法是简单地使用像这样的多个参数
public void UpdateName(int id, string name)
{
var person = PersonController.GetPerson(id);
person.Name = name;
PersonController.UpdatePerson(person);
}
这种方法适用于较少数量的参数,但我的真实世界代码通常有大约 5 - 10 个参数。使用对象而不是必须声明和使用所有这些参数非常方便。
我想知道是否有另一种方法可以将 JSON 数据作为单个对象接受,而不必为我想使用这种方法的每个控制器方法声明一个类。例如,像这样:
public void UpdateName(dynamic someData)
{
var person = PersonController.GetPerson(someData.Id);
person.Name = someData.Name;
PersonController.UpdatePerson(person);
}