如何忽略MVC6中的路由

时间:2015-01-19 02:37:43

标签: asp.net-core asp.net-core-mvc

我正在开发一个非常简单的SPA风格的应用程序,我不想使用razor,所以我只需要它来提供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控制器不会工作。

2 个答案:

答案 0 :(得分:15)

我想如果你想在你的MVC选项启用时提供index.html吗?如果是这样,你必须改变一个设置。

当您启用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.

答案 1 :(得分:14)

30 2 * * * php /www/CakePHP/app/webroot/files/tickets/import.php