为什么我不应该从ASP.NET ApiController返回HTML?
问题描述:
查看自托管的OWIN应用程序的教程,教程都指向使用ApiController。此代码的工作:为什么我不应该从ASP.NET ApiController返回HTML?
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库告诉...
答
功能,有什么不对从API返回控制器的HTML。
您不希望这样做的唯一原因是因为约定是API控制器用于公开服务功能,而ASP.NET MVC控制器用于提供网站或页面。
因此,一些开发人员会被这种方法所困惑。
+0
谢谢。我是新来的asp.net,一直在努力阅读owin。所有的教程都使用apicontroller。 –
你为什么在这里使用任务? – mason
@mason,只是因为我不知道更好。我的想法是,我希望文件io是异步的。那是对的吗?什么是更好的方式呢? –
不要预先优化。这不好。如果性能不是问题,现在你只是让代码更复杂,没有理由。 – mason