无需路由+ layout.cshtml即可呈现Web文件

时间:2016-01-11 14:22:33

标签: c# asp.net angularjs asp.net-mvc-5 visual-studio-2015

我想在ASP.NET 5(Visual Studio 2015)中启动一个新的AngularJS单页面应用程序。我只会将ASP.NET用于其WebAPI功能,而不是用于视图渲染(Razor)。

因此,如果我不需要HomeController_Layout.cshtml来引导我的Angular应用程序,我会更喜欢它。

有没有办法删除它,只是让ASP.NET返回静态初始页面?我将通过AngularJS

完成所有路由

更新

根据@Phills的建议,我已将index.html加入wwwroot。如果我导航到http://localhost:62583/index.html它可以正常工作,但如果我导航到http://localhost:62583/

则不会

4 个答案:

答案 0 :(得分:1)

您可以在应用的根目录中创建index.html页面,然后移除HomeController,如果找不到路由,则会选择index.html页面。

答案 1 :(得分:1)

是的,你可以这样做。将您的文件放在wwwroot /(例如,名为index.html)中,然后确保您的Startup.cs配置方法中存在以下内容:

YelpClientVerticle

顺便说一下,即使你坚持使用HomeController,也不需要_Layout.cshtml - 你只需要从Views \ Shared_ViewStart.cshtml中删除对它的引用。如果您这样做,您可以将所有内容放在Views \ Home \ Index.cshtml中。

答案 2 :(得分:0)

是的,你可以。您的视图不一定必须有布局页面。您仍将从控制器返回一个cshtml视图,它基本上是一个静态HTML,用于启动Angular应用程序。

答案 3 :(得分:0)

特别是因为您要开发Angular JS应用程序,您将能够使用AngularJS本身处理模板。

您可以使用< ng-view />而不是布局页面。标记您渲染部分视图。

您需要一些类似于MVC的路由设置

  angular.module("myApp",["ngRoute"])
            .config(function($routeProvider){
                $routeProvider.when("/home",{
                    templateUrl:"/views/home.html"
                });
                $routeProvider.when("/placeorder",{
                    templateUrl:"/views/placeOrder.html"
                });


                $routeProvider.otherwise({
                    templateUrl:"/views/home.html"
                });
            });

你看起来会像这样

<body>
  <ng-view/>
</body>