我正在使用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