Sto cercando un esempio WebApi in cui la route predefinita restituirà una determinata pagina html al chiamante. Ho impostato il percorso e l'azione come segue. Voglio solo mandargli la pagina index.html, non il reindirizzamento, perché è nel posto giusto.Come restituire la pagina html dall'azione WebApi?
http://localhost/Site // load index.html
// WebApiConfig.cs
config.Routes.MapHttpRoute(
name: "Root",
routeTemplate: "",
defaults: new { controller = "Request", action = "Index" }
);
// RequestControlller.cs
[HttpGet]
[ActionName("Index")]
public HttpResponseMessage Index()
{
return Request.CreateResponse(HttpStatusCode.OK, "serve up index.html");
}
Se I "m utilizzando questo torto, qual è l'approccio migliore e mi puoi indicare un esempio
WebAPI 2 con .NET 4.52
Edit:? Hmm, migliorato, ma ottenendo intestazione jSON indietro invece del contenuto della pagina.
public HttpResponseMessage Index()
{
var path = HttpContext.Current.Server.MapPath("~/index.html");
var content = new StringContent(File.ReadAllText(path), Encoding.UTF8, "text/html");
return Request.CreateResponse(HttpStatusCode.OK, content);
}
{"Headers":[{"Key":"Content-Type","Value":["text/html; charset=utf-8"]}]}
Sembra che sia per Asp.Net Nucleo. Perdonami non sto capendo bene dove cambiare il codice WebApi per servire il file statico. Non ho un metodo Configure o WebHostBuilder. –