为什么我不应该从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库告诉...

+0

你为什么在这里使用任务? – mason

+0

@mason,只是因为我不知道更好。我的想法是,我希望文件io是异步的。那是对的吗?什么是更好的方式呢? –

+0

不要预先优化。这不好。如果性能不是问题,现在你只是让代码更复杂,没有理由。 – mason

功能,有什么不对从API返回控制器的HTML。

您不希望这样做的唯一原因是因为约定是API控制器用于公开服务功能,而ASP.NET MVC控制器用于提供网站或页面。

因此,一些开发人员会被这种方法所困惑。

+0

谢谢。我是新来的asp.net,一直在努力阅读owin。所有的教程都使用apicontroller。 –