gpt4 book ai didi

c# - 从 WebApi 返回 JsonResult 不工作 ASP.NET

转载 作者:行者123 更新时间:2023-11-30 20:26:54 26 4
gpt4 key购买 nike

我有一个 MVC 项目。我想得到一个简单的 json 响应 {result: "ok"}。下面是我的代码

using System;
using System.Web.Mvc;
using Microsoft.Xrm.Sdk;
using CRM_WebApp.Models;
using System.Web.Http;
using System.Web.Http.Cors;
using Microsoft.Xrm.Sdk.Query;
using CRM_WebApp.Services;

namespace CRM_WebApp.Controllers
{
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class CallBackFormController : ApiController
{

[System.Web.Mvc.HttpPost]
public JsonResult Post([FromBody] CallBackFormModel CallBackFormModel)
{
ConnectiontoCrm connectiontoCrm = new ConnectiontoCrm();
//connectiontoCrm.GetConnectiontoCrm();
connectiontoCrm.GetConnectiontoCrmCopy();

Entity lead = new Entity("lead");
lead["firstname"] = CallBackFormModel.FirstName;
lead["mobilephone"] = CallBackFormModel.Telephone;
lead["telephone3"] = CallBackFormModel.Telephone;

Guid tisa_callbackformid = connectiontoCrm.organizationservice.Create(callbackform);
return new JsonResult { Data = new { result = "ok" } };
}
}
}

我的代码给出了以下响应:

{
"ContentEncoding": null,
"ContentType": null,
"Data": {
"result": "ok"
},
"JsonRequestBehavior": 1,
"MaxJsonLength": null,
"RecursionLimit": null
}

如何更改我的代码以获得响应:{result: "ok"}

最佳答案

在对您的代码进行一些调查之后,我确实注意到存在一些基本错误。

  1. 当您从 ApiController 继承时,您在这里创建的是 WebApiController,而不是 MVC Controller (可以通过从 Controller 类继承来创建)

  2. 你必须小心你使用的命名空间,因为有些类和属性具有相同的名称但在不同的命名空间中,例如 HttpPost 属性存在于 System.Web.HttpSystem.Web.Mvc 并且根据您的代码,您必须使用前一个命名空间中的那个,因为您继承自 ApiController .

请记住,System.Web.Mvc 用于 ASP.NET MVC 而 System.Web.Http 用于 Web API。

  1. 您没有使用正确的方法返回类型(表示 Web API 方法)

所以在解决了之前所有的问题之后,工作代码应该是这样的

[System.Web.Http.HttpPost]
public System.Web.Http.IHttpActionResult Post([System.Web.Http.FromBody] CallBackFormModel CallBackFormModel)
{
// your previous code goes here
return Json(new { result = "ok" }, JsonRequestBehavior.AllowGet);
}

我建议您阅读 ASP.NET MVC 和 Web API 以及它们之间的区别,以避免将来出现此类问题。

关于c# - 从 WebApi 返回 JsonResult 不工作 ASP.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49363273/

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