MVC 4 return JSON as ActionResult
我正试图让我的apicontroller工作。 但不知何故,我无法返回
这是编译器的错误消息:
Error CS0029 Cannot implicitly convert type
'System.Web.Http.Results.JsonResult<>'
to
'System.Web.Mvc.JsonResult' Opten.Polyglott.Web D:\Development\git\Opten.Polyglott\src\Opten.Polyglott.Web\Controllers
ewsletterApiController.cs
我无法解释为什么它不能将
这是我的控制器:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | using MailChimp; using MailChimp.Helper; using Opten.Polyglott.Web.Models; using Opten.Umbraco.Common.Extensions; using System.Configuration; using System.Web.Mvc; using Umbraco.Core.Logging; using Umbraco.Web.WebApi; namespace Opten.Polyglott.Web.Controllers { public class NewsletterApiController : UmbracoApiController { public ActionResult Subscribe(Newsletter newsletter) { bool isSuccessful = false; if (ModelState.IsValid) { isSuccessful = SubscribeEmail(newsletter.Email); } return Json(new { isSuccess = isSuccessful }); } } } |
谢谢你的帮助。
您的问题在使用中,因为
并把
至于这种情况下的返回
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | using MailChimp; using MailChimp.Helper; using Opten.Polyglott.Web.Models; using Opten.Umbraco.Common.Extensions; using System.Configuration; using System.Web.Http; using Umbraco.Core.Logging; using Umbraco.Web.WebApi; namespace Opten.Polyglott.Web.Controllers { public class NewsletterApiController : UmbracoApiController { public IHttpActionResult Subscribe(Newsletter newsletter) { bool isSuccessful = false; if (ModelState.IsValid) { isSuccessful = SubscribeEmail(newsletter.Email); } return Json(new { isSuccess = isSuccessful }); } } } |
如果这对您有用,请告诉我。
看来你的Json正在使用System.Web.Http中的类,而不是在System.Web.Mvc中。 在这种情况下,您可以使用此代码:
1 |
使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public ActionResult SomeMethod() { try { // ... // doing something here... // ... // success: Response.StatusCode = (int)HttpStatusCode.OK; return Json(new { responseText ="OK" }); } catch { // error: Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(new { responseText ="ERROR" }); } } |
在WebApiConfig.cs文件中添加以下行:
1 |