gpt4 book ai didi

c# - ASP.NET MVC4 Controller 方法在 C# 中返回具体类型而不是 JSON

转载 作者:行者123 更新时间:2023-11-30 16:49:36 24 4
gpt4 key购买 nike

如何让 Controller 方法返回对象列表并在将结果发送回浏览器之前对其执行某些操作?

将 Controller 方法的返回类型从 JsonResult 更改为 List 将在请求中返回结果“System.Collections.Generic.List`1[MyObject]”的类型。

我正在尝试通过自定义结果过滤器来完成此操作,但是当结果到达过滤器 OnResultExecuted 方法时,它已经被 jsonified 为上面的文本。我可以在 OnResultExecuting 方法中做些什么来检索从该方法返回的列表并修改它?

谢谢!

最佳答案

如果我从评论中了解到,我认为您正在寻求做这样的事情

public interface ICtrlService {
List<MyObject> SomeMethod();
}


public ControllerA : Controller {
ICtrlService service;

public MyController(ICtrlService service){
this.service = service
}

public JsonResult SomeAction() {
List<MyObject> result = service.SomeMethod();
return Json(result);
}
}

您的代理可以按照规定实现服务。

public class ProxyB : ICtrlService {

public List<MyObject> SomeMethod() {...}

}

您甚至可以使用代理作为 Controller 的注入(inject)依赖项,确保 Controller 实际提供所需的功能。

或者使用公共(public)服务作为代理的依赖。

public class ProxyB {
ICtrlService service;
public ProxyB(ICtrlService service) {
this.service = service;
}

public List<MyObject> SomeProxyMethod() {
var result = service.SomeMethod();
//...Do what you want with object
return result;
}
}

这将使代理不必调用 Controller ,因为它将可以访问相同的公共(public)服务功能。

关于c# - ASP.NET MVC4 Controller 方法在 C# 中返回具体类型而不是 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36433553/

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