gpt4 book ai didi

c# - MVC 4 返回 JSON 作为 ActionResult

转载 作者:行者123 更新时间:2023-11-30 18:58:31 25 4
gpt4 key购买 nike

我正在尝试让我的 apicontroller 工作。但不知何故我无法返回 Json()

这是来自编译器的错误消息:

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\NewsletterApiController.cs

我无法解释为什么它不能将 Json() 转换为 ActionResult 即使 Json() 继承 ActionResult.

这是我的 Controller :

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 });
}
}
}

感谢您的帮助。

最佳答案

您的问题出在使用中,因为 UmbracoApiController 很可能继承自 ApiController(来自 System.Web.Http) 而不是 Controller(来自 System.Web。 Mvc) 因此它们具有不同的依赖关系。要解决您的问题,请先删除

使用 System.Web.Mvc;

然后把

使用 System.Web.Http;

至于在这种情况下的返回将是 IHttpActionResult 所以您将得到如下内容:

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 });
}
}
}

让我知道这是否适合您。

关于c# - MVC 4 返回 JSON 作为 ActionResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37133362/

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