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);
}