为什么我不能从ASP.NET ApiController返回HTML?

时间:2017-09-07 16:17:06

标签: asp.net owin

查看自托管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图书馆......

1 个答案:

答案 0 :(得分:1)

从功能上讲,从API控制器返回Html没有任何问题。

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

因此,一些开发人员会对这种方法感到困惑。