asp.net-core – 如何忽略MVC6中的路由

前端之家收集整理的这篇文章主要介绍了asp.net-core – 如何忽略MVC6中的路由前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个非常简单的SPA风格应用程序,我不想使用剃刀,所以我只需要它来提供HTML文件(从wwwroot文件夹),除了当js调用我的API控制器.在Web API 2中,您可以让路由器忽略HTML文件,以便直接提供服务.
config.Routes.IgnoreRoute("Html","{whatever}.html/{*pathInfo}");

类似于这个例子:http://www.strathweb.com/2014/04/ignoring-routes-asp-net-web-api/是IgnoreRoute功能只是没有被实现或已被改变?

目前如果我有app.UseMvc();在我的Startup.cs任何获取请求到“/”得到我这个例外:

An unhandled exception occurred while processing the request.
InvalidOperationException: The view 'Index' was not found. The following     locations were searched:
/Views/Home/Index.cshtml
/Views/Shared/Index.cshtml.
Microsoft.AspNet.Mvc.Rendering.ViewEngineResult.EnsureSuccessful()

但是当我离开它没有MVC它提供了index.html文件,当你请求“/” – 显然我的API控制器将不会工作,然而,但是.

解决方法

我想如果你想提供index.html,即使你的MVC选项被启用了?如果是这样,你必须改变一个设置.

当您启用MVC时,当您的网址像http:// localhost:yourport时,添加了默认路径来搜索主页/索引.

当您禁用MVC时,它将为index.html提供服务,因为在这种情况下不存在路由.

因此,如果要在启用MVC时提供index.html,则在使用MVC之前,在Configure函数添加以下内容.

app.UseDefaultFiles(new Microsoft.AspNet.StaticFiles.DefaultFilesOptions() { DefaultFileNames = new[] { "index.html" } });
// your UseMVC goes here.

猜你在找的asp.Net相关文章