我有一个web api控制器
using sport.BLL.Abstract; using sport.BLL.Concrete; using sport.DAL.Entities; using sport.webApi.Models; using AutoMapper; using Microsoft.AspNet.Identity.EntityFramework; using System; using System.Collections.Generic; using System.Linq; using Microsoft.AspNet.Identity; using Microsoft.AspNet.Identity.Owin; using Microsoft.Owin.Security; using System.Net; using System.Net.Http; using System.Web.Http; using System.Web; using System.Web.WebPages.Html; namespace sport.webApi.Controllers { public class AccountManageController : ApiController { [HttpPost] public System.Web.Mvc.ActionResult CreateAccount(CollaborateurModel item) { var user = new ApplicationUser { UserName = item.Username,Email = item.Email }; var result = UserManager.CreateAsync(user,item.Password); if (result.Result.Succeeded) { var currentUser = UserManager.FindByName(item.Username); var roleresult = UserManager.AddToRole(currentUser.Id,item.Role); ajt_collaborator entity = Mapper.Map<CollaborateurModel,ajt_collaborator>(item); entity.id_user_fk = currentUser.Id; entity.is_deleted = false; repo.CreateCollaborator(entity); var response = new { Success = true }; return Json(response); } else { var errorResponse = new { Success = false,ErrorMessage = "error" }; return Json(errorResponse); } } } }
我在这行中遇到错误:
返回Json(回应);
Json方法无法识别!!!当我用Google搜索时,我得到了这个link,表明Json方法包含在System.Web.Mvc中.即使我尝试导入此命名空间,我得到相同的错误?
解决方法
问题是您继承自ApiController,但Json是System.Web.Mvc.Controller的成员.
尝试使用JsonResult:
return new JsonResult { data = yourData; }
您可以将任何对象设置为数据,因为它将被序列化为JSON.
例如,如果您只需要返回操作结果,则可以这样使用它:
return new JsonResult { data = true; } // or false
但是,描述结果类和返回对象是一种好习惯.