我有一个工作网页(前端严格),我很好奇我可以在不离开VS代码的情况下添加WebApi。所以我在项目的根目录中创建了一个名为 webapi 的目录,并添加了一个包含以下内容的文件 demo.cs 。
using Microsoft.AspNetCore.Mvc;
namespace WebApi
{
[Route("api/[controller]")]
public class Demo : Controller
{
[HttpGet] public string Ping() { return "yo!"; }
}
}
在参考googlearching之后,我确保我的 project.json 包含以下内容。
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.AspNetCore.Mvc.Core": "1.0.1",
我还编辑了这样的配置方法。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore();
services.AddDirectoryBrowser();
}
public void Configure(IApplicationBuilder app,
IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole();
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
app.UseMvc();
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseFileServer(true);
app.UseMvcWithDefaultRoute();
}
现在,当我使用 dotnet run 执行项目时,我没有错误,页面功能但我似乎无法访问我打算公开的文本。额外的问题是我不确定我是否运行了WebApi但是使用了错误的URL(我使用 / api / donkey localhost:port )或者它根本没有运行。
我如何验证它是否已启动?地址是什么?我在设置中还缺少其他东西吗?
指南讲述了一些不同的东西,我想这取决于NET.Core的快速发展。不知道如何继续。
答案 0 :(得分:1)
使用
中的文档要使属性路由重复性较低,请在路径上布置属性 控制器与个人的路线属性相结合 动作。控制器上定义的任何路径模板都是前置的 在动作上路由模板。在路径上放置路线属性 controller使控制器中的所有操作都使用属性路由。
using Microsoft.AspNetCore.Mvc;
namespace WebApi {
[Route("api/[controller]")]
public class Demo : Controller {
[HttpGet] // Matches 'GET /api/Demo'
public string Ping() {
return "yo!";
}
}
}
启动应该在配置服务中具有此功能
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services) {
// Add framework services.
services.AddMvc();
//...other code
}