gpt4 book ai didi

c# - 无需声明对象即可将 JSON 数据传递给 Controller ​​方法

转载 作者:太空狗 更新时间:2023-10-30 01:06:39 25 4
gpt4 key购买 nike

我正在使用 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'
}
});

使用这个 Controller 方法和辅助类。

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 数据作为单个对象接受,而不必为我想在其中使用这种方法的每个 Controller 方法声明一个类。例如,如下所示:

public void UpdateName(dynamic someData)
{
var person = PersonController.GetPerson(someData.Id);
person.Name = someData.Name;
PersonController.UpdatePerson(person);
}

最佳答案

您可以接受一个 FormCollection,它看起来像:

public void UpdateName(FormCollection collection)
{
var person = PersonController.GetPerson(int.Parse(collection["id"]));
person.Name = collection["name"];
person.Age = collection["age"];

PersonController.UpdatePerson(person);
}

关于c# - 无需声明对象即可将 JSON 数据传递给 Controller ​​方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14857614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com