Вы должны изменить тип возвращаемого значения метода действия на IHttpActionResult
, затем вы можете сделать что-то вроде этого
public IHttpActionResult Get()
{
if (!File.Exists(@"D:\myfile.xml"))
return NotFound();
//Read XML
XDocument xDoc = XDocument.Load(@"D:\myfile.xml");
string jsonStr = JsonConvert.SerializeXNode(xDoc);
JObject json = JObject.Parse(jsonStr);
return Ok(json);
}
Это должно дать вам гибкость, к которой вы стремитесь.
Краткое объяснение используемых методов
return OK(json)
вернет успешный (HTTP 200) ответ с сериализованным json
в теле.
return NotFound()
приведет кнеудавшийся запрос и результат HTTP 404.
В случае ошибки в идеале следует вернуть код 5xx, который можно получить с помощью return InternalServerError();
Для получения дополнительной информации об этих и других помощниках вApiController
базовый класс, посмотрите страницу в документах Microsoft