在MVC控制器外部使用Controller.Content c#
发布时间:2020-12-15 08:47:31 所属栏目:百科 来源:网络整理
导读:我正在使用静态方法创建一个静态类,以帮助控制器完成他们的工作.构建应用程序时,我收到以下错误: Error 40 ‘ System.Web.Mvc.Controller.Content(string) ‘ is inaccessible due to its protection level” 知道如何解决这个问题吗? 笔记: 这是一个c#mv
我正在使用静态方法创建一个静态类,以帮助控制器完成他们的工作.构建应用程序时,我收到以下错误:
知道如何解决这个问题吗? 笔记: 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),}) ); } 解决方法
内容方法在内部受到保护,因此您无法在控制器之外使用它.
Controller.Content Method.很可能你的静态类违反了SRP原则.让他完成他的工作(初始化,序列化,……)和控制器 – 控制器的工作 – 将结果返回给客户. protected internal ContentResult Content(string content) 看起来像是: public static class MyHelper { public static object GetAlbum(AlbumVO album) { return new { max_car = @ABookClient.maxCharsProjecName,}; } } public class AlbumController : Controller { public ActionResult GetAlbums(int id) { var album = Context.GetAlbum(id); var convertedResult = MyHelper.GetAlbum(album); return Json(convertedResult); } } 另外,我建议您查看AutoMapper以创建客户端响应对象 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |