ich auf MVC5 arbeite, wo ich Web-Api-Controller verfügen, die Daten und Code zurückkehrt ist, wie untenKonsumieren IHttpActionResult von MVC-Controller
[Route("m/api/Group")]
[HttpGet]
public IHttpActionResult ListOfGroups()
{
try
{
var listOfGroups = GroupExecutor.GetListOfGroups();
return Ok(listOfGroups);
}
catch (Exception ex)
{
LogClass.Logger.Error(ex.Message, ex);
return InternalServerError();
}
}
Wenn ich diese URL in Brower laufen, seine Daten korrekt im JSON-Format zurückkehren .
Jetzt möchte ich diese API Controller-Methode in einem Projekt durch MVC-Controller und Code verbrauchen ist als unten
[HttpPost]
[ValidateAntiForgeryHeader]
public ActionResult GetListOfGroups()
{
try
{
var listofGroups = new GroupController().ListOfGroups();
return GetJsonContentResult(listofGroups);
}
catch (Exception ex)
{
LogClass.Logger.Error(ex.Message, ex);
return new HttpStatusCodeResult(HttpStatusCode.InternalServerError, Utility.GetDescriptionFromEnumValue(Helper.TypeOfError.ErrorOccuredWhileProcessingRequest));
}
}
Jetzt Wenn ich diesen Code ausführen zu api Methode geht aber bei der Wiedergabe an dem Controller, das geben Fehler zurückgegeben
Error getting value from 'Content Negotiation' on 'System.Web.Http.Results.OkNegotiatedContentResult
Wie kann ich dieses Problem lösen?
EDIT:
public ContentResult GetJsonContentResult(object data)
{
var camelCaseFormatter = new JsonSerializerSettings();
camelCaseFormatter.ContractResolver = new CamelCasePropertyNamesContractResolver();
var jsonResult = new ContentResult
{
Content = JsonConvert.SerializeObject(data, camelCaseFormatter),
ContentType = "application/json"
};
return jsonResult;
}
Ich verstehe nicht, warum Sie Web API-Methode so in Ihrem Controller aufrufen müssen? – dotnetstep
Da seine Funktion in MVC5 direkt API-Controller aufrufen .. keine Notwendigkeit, Client zu erstellen – Mahajan344
Was macht Ihre GetJsonContentResult-Methode? – dotnetstep