我正在使用ASP.NET MVC和jQuery通过AJAX调用保存一些数据。我目前传递使用jQuery AJAX()函数一些JSON数据,像这样将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个参数。使用对象而不必声明和使用所有这些参数非常方便。
我wondernig如果有接受JSON数据作为一个单一的对象和不具有声明一个类对于每个控制器的方法我想使用这种方法的另一种方式。例如,这样的事情:
public void UpdateName(dynamic someData)
{
var person = PersonController.GetPerson(someData.Id);
person.Name = someData.Name;
PersonController.UpdatePerson(person);
}
可以只要将它们转换为JSon,肯定会发布复杂的对象。你会在jscript或Razor变量中构建复杂的对象吗? – 2013-02-13 16:10:00
另一种选择是将json数据作为一个字符串并在动作中反序列化。 – 2013-02-13 16:11:35
http://stackoverflow.com/questions/11608026/asp-net-mvc-can-json-object-be-passed-to-a-controller-with-parameter-with-dynami – 2013-02-13 16:12:13