我想在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/
答案 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>