【发布时间】:2016-04-07 06:10:54
【问题描述】:
我遇到的问题是,当我尝试从 URL 栏运行我的控制器方法时,例如localhost://5000/api/course/GetCourseById/1 没有执行,页面刷新到启动“欢迎-您的ASP.NET 5应用程序已成功启动”页面。
请看下面的代码和屏幕截图。
Startup.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http;
using Microsoft.Extensions.DependencyInjection;
using School.Context;
using School.Services;
using School.Interfaces;
using School.Models;
using Microsoft.Extensions.Configuration;
using Microsoft.Data.Entity;
namespace School
{
public class Startup
{
public static IConfiguration Configuration { get; set; }
public Startup (IHostingEnvironment env)
{
//setup configuration sources
Configuration = new ConfigurationBuilder()
.AddJsonFile("config.json")
.AddEnvironmentVariables()
.Build();
}
// 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)
{
//add services to container
services.AddEntityFramework().AddSqlServer().AddDbContext<SchoolDbContext>(options => options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
services.AddMvc();
//resolve dependency injections
services.AddScoped<IRegistrationRepo, RegistrationRepo>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.UseMvc();
app.UseWelcomePage();
}
// Entry point for the application.
public static void Main(string[] args) => WebApplication.Run<Startup>(args);
}
}
CourseController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNet.Mvc;
using School.Interfaces;
using School.Models;
// For more information on enabling Web API for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
namespace School.Controllers
{
[Route("api/[controller]")]
public class CourseController : Controller
{
private IRegistrationRepo _registrationRepo;
public CourseController(IRegistrationRepo registrationRepo)
{
_registrationRepo = registrationRepo;
}
[HttpGet]
public IEnumerable<Course> GetAllCourses()
{
return _registrationRepo.GetCourses();
}
[HttpGet("{courseId:int}", Name = "GetCourseById")]
public IActionResult GetCourseById(int courseId)
{
var course = _registrationRepo.GetCourse(courseId);
if (course == null)
{
return HttpNotFound();
}
return new ObjectResult(course);
}
}
}
【问题讨论】:
标签: asp.net-web-api asp.net-core asp.net-core-mvc asp.net-web-api-routing entity-framework-core