我使用ASP.NET Core MVC和AngularJS创建了一个项目,其中包含客户端依赖项NPM,Bower,Gulp。 index.html
文件夹中创建的wwwroot
页面不会显示为默认值。
的index.html
<!DOCTYPE html>
<html ng-app="myQuotesApp">
<head>
<meta charset="utf-8" />
<title>My Quotes App</title>
<script src="lib/angular/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular-resource.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular-route.js"></script>
<script src="app.js"></script>
</head>
<body ng-cloak>
<div ng-controller="quotesController">
<h2>List Of Quotes</h2>
<ul>
<li ng-repeat="quote in quotes">
<p>"{{quote.Content}}" - {{quote.Author}}</p>
</li>
</ul>
</div>
</body>
</html>
Startup.cs
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
//app.Run(async (context) =>
//{
// await context.Response.WriteAsync("Hello World!");
//});
app.UseMvc();
}
}
project.json
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.1"
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"wwwroot",
"web.config"
]
},
"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
app.js文件
(function () {
'use strict';
angular.module('MyQuotesApp', [
// Angular modules
'ngRoute',
//////////////////
'ngResource',
///////////////insert this ^^^^
// Custom modules
"quotesService"
// 3rd Party Modules
]);
})();
quotesService.cs
(function () {
'use strict';
var quotesService = angular.module('quotesService', ['ngResource']);
quotesService.factory('Quotes', ['$resource', function ($resource) {
return $resource('/api/quotes/', {}, {
query: { method: 'GET', params: {}, isArray: true }
});
}]);
})();
quotesController.js
(function () {
'use strict';
angular
.module('myQuotesApp')
.controller('quotesController', quotesController);
quotesController.$inject = ['$scope','Quotes'];
function quotesController($scope, Quotes) {
$scope.quotes = Quotes.query();
//$scope.title = 'quotesController';
//activate();
//function activate() { }
}
})();
QuotesConroller.cs
namespace MyQuotesApp.api
{
[Route("api/[controller]")]
public class QuotesController : Controller
{
// GET: api/values
[HttpGet]
public IEnumerable<Quote> Get()
{
return new List<Quote> {
new Quote {ID=1, Content="abc", Author="abc123" },
new Quote {ID=2, Content="abcd", Author="abcd123" },
new Quote { ID=3, Content="abcde", Author="abcde123"}
};
//return new string[] { "value1", "value2" };
}
// GET api/values/5
[HttpGet("{id}")]
public string Get(int id)
{
return "value";
}
// POST api/values
[HttpPost]
public void Post([FromBody]string value)
{
}
// PUT api/values/5
[HttpPut("{id}")]
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/values/5
[HttpDelete("{id}")]
public void Delete(int id)
{
}
}
}
答案 0 :(得分:0)
当您收到根(/
)的GET请求时,您没有指定要执行的操作。
[HttpGet('/')]
public IActionResult Index()
{
return View();
}
在MVC中,当您指定return View();
而未提供特定视图时,它将搜索以Action
命名的视图(控制器方法名称,在本例中为Index
)
答案 1 :(得分:0)
同样的问题 - 根据asp.net核心建议,index.html位于wwwroot文件夹中。那么如何将此页面显示为网站的默认值?我理解(从MVC5天开始)控制器没有提供服务&#34; .html&#34;网页?
答案 2 :(得分:0)
您需要添加app.UseDefaultFiles()
和app.UseStaticFiles()
。
app.UsedefaultFiles()
会在 wwwrootfolder 中查找默认文件,例如 default.html 或 index.html 。