MVC JSON数据引用

本文关键字:引用 数据 JSON MVC | 更新日期: 2023-09-27 18:28:30

有一个对我的控制器的调用,在那里执行类似的操作:

someObject.Name = "Mike";
JsonResult result = Json(new { TheMan = someObject }, JsonRequestBehavior.AllowGet);
someObject.Name = "Paul";
return result;

问题是,当客户端接收到数据时,名称是"Paul",而我本以为结果JSON是用"Mike"创建的。

在文档中,它说"当对象被执行时,由该方法准备的结果对象被ASP.NET MVC框架写入响应。"

有没有一种解决方案,我可以在不担心更改响应的情况下操作JSON数据上使用的对象?(克隆someObject或某物)

谢谢。

MVC JSON数据引用

你说得差不多了。当你创建Json对象时,你只是添加了一个对someObject的引用,所以如果你更改值,它也会在Json对象内部更改。在操作返回JsonResult之前,Json实际上不会写入响应。如果要在不影响原始值的情况下将值设置为其他值,则需要对象的另一个副本。