当前位置: 首页 > 编程语言 > C#

WebApi控制器不识别Json方法分享

时间:2023-04-10 18:05:35 C#

WebApi控制器不识别Json方法我有一个webapi控制器使用sport.BLL.Abstract;使用sport.BLL.Concrete;使用sport.DAL。实体;使用sport.webApi.Models;使用自动映射器;使用Microsoft.AspNet.Identity.EntityFramework;使用系统;使用System.Collections.Generic;使用System.Linq;使用System.Net;使用System.Net.Http;使用System.Web.Http;使用System.Web;使用System.Web.WebPages.Html;namespacesport.webApi.Controllers{publicclassAccountManageController:ApiController{[HttpPost]publicSystem.Web.Mvc.ActionResultCreateAccount(CollaborateurModelitem){varuser=newApplicationUser{UserName=item.Username,Email=item.Email};varresult=UserManager.CreateAsync(user,item.Password);如果(result.Result.Succeeded){varcurrentUser=UserManager.FindByName(item.Username);varroleresult=UserManager.AddToRole(currentUser.Id,item.Role);ajt_collaboratorentity=Mapper.Map(item);entity.id_user_fk=currentUser.Id;entity.is_deleted=false;repo.CreateCollaborator(实体);varresponse=new{Success=true};返回Json(响应);}else{varerrorResponse=new{Success=false,ErrorMessage="error"};返回Json(错误响应);}}}}我在这一行收到一个错误:returnJson(response);Json方法无法识别!!!当我用谷歌搜索时,我得到了这个链接,它表明Json方法包含在System.Web.Mvc中即使我尝试导入这个命名空间,我也会得到同样的错误?这个错误的原因是什么?我该如何解决?问题是您继承自ApiController,但Json是System.Web.Mvc.Controller的成员。尝试使用JsonResult:returnnewJsonResult{data=yourData;您可以将任何对象设置为数据,因为它将被序列化为JSON。例如,如果你只需要返回操作的结果,你可以这样使用:returnnewJsonResult{data=true;}//或false但是,最好描述结果类和返回对象。我该如何解决?原因是您不是从Controller继承而是从ApiController继承,它在其基类中将Json(objecto)作为方法,但这并不重要,因为您的方法存在根本问题。与WebAPI一起使用的ApiController并不是要返回ActionResult,它是一个属于MVC的概念。相反,您只需返回您的POCO并让WebAPI框架为您处理序列化:返回新的{成功=假,错误信息=“错误”};您可以在Global.asax.cs文件中设置格式化程序配置,并准确地告诉它要使用哪些(在您的情况下,您将需要JsonMediaTypeFormatter)。以上是C#学习教程:WebApicontroller无法识别Json方法共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: