查看自托管OWIN应用程序的教程,教程都指向使用ApiController。此代码有效:
public class MapController : ApiController
{
// Get /map
public async Task<HttpResponseMessage> Get()
{
return await Task.Run(() => {
string html = File.ReadAllText("./Client/html/MapExample.html");
HttpResponseMessage response = new HttpResponseMessage
{
Content = new StringContent(html)
};
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return response;
});
}
}
这似乎有用......为什么我要延长Controller
vs ApiController
?
到目前为止,我无法访问Controller
课程,因为我可以告诉OWIN图书馆......
答案 0 :(得分:1)
从功能上讲,从API控制器返回Html没有任何问题。
您不希望这样做的唯一原因是因为约定是API控制器用于公开服务功能,而ASP.NET MVC控制器用于提供网站或页面。
因此,一些开发人员会对这种方法感到困惑。