gpt4 book ai didi

c# - 在 MVC Controller 之外使用 Controller.Content c#

转载 作者:太空狗 更新时间:2023-10-29 21:33:08 25 4
gpt4 key购买 nike

我正在创建一个带有静态方法的静态类,以帮助 Controller 完成它们的工作。构建应用程序时出现以下错误:

Error 40 'System.Web.Mvc.Controller.Content(string)' is inaccessible due to its protection level"

知道如何解决这个问题吗?

注意事项:这是一个 c# mvc 应用程序

public static ActionResult GetAlbumJSON(AlbumVO album)
{
return Controller.Content(
JsonConvert.SerializeObject(new
{
max_car = @ABookClient.maxCharsProjecName,
trans_img = @ABookClient.Transparent_Image,
show_description = @ABookClient.Show_Product_Description,
product_type = "Album",
obj = CreateObjAlbumVO(album),
})
);
}

最佳答案

Content 方法在内部受到保护,因此您不能在 Controller 外部使用它。 Controller.Content Method .您的静态类很可能违反了 SRP 原则。让他完成他的工作(初始化、序列化...)和 Controller - Controller 的工作 - 将结果返回给客户端。

protected internal ContentResult Content(string content)

它看起来像:

public static class MyHelper
{
public static object GetAlbum(AlbumVO album)
{
return new
{
max_car = @ABookClient.maxCharsProjecName,
trans_img = @ABookClient.Transparent_Image,
show_description = @ABookClient.Show_Product_Description,
product_type = "Album",
obj = CreateObjAlbumVO(album),
};
}
}

public class AlbumController : Controller
{
public ActionResult GetAlbums(int id)
{
var album = Context.GetAlbum(id);
var convertedResult = MyHelper.GetAlbum(album);
return Json(convertedResult);
}
}

我还建议看一下 AutoMapper用于创建客户端响应对象

关于c# - 在 MVC Controller 之外使用 Controller.Content c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32312646/

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