【发布时间】:2019-09-18 07:19:18
【问题描述】:
我正在尝试制作 n 层应用程序,其中 web api 保存在不同的类库中。我在另一个类库中创建了一个TestController 控制器类,我的代码是这样的
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
namespace PkrUni.SMS.Api
{
[ApiController]
[Produces("application/json")]
[Route("api/[controller]")]
public class TestController : ControllerBase
{
public IEnumerable<string> Get()
{
return new string[] { "Chris", "Hadfield" };
}
}
}
现在我的问题是如何在我的主项目中访问这个 web api。我已经在主项目中添加了对该类库的引用,但它不起作用。我的 api 不工作。尝试访问 api 时出现404 Page Not Found错误。 这是我的项目结构。
我做错了什么请帮帮我。
【问题讨论】:
-
也许是this。控制器被引用,但应用不知道在任何程序集中寻找控制器,但它自己的。
-
你为什么要把控制器放在一个单独的项目中?对于 N 层应用程序来说,这并不是真正需要的。
-
@mason Api 控制器仅在不同的项目中,但 mvc 控制器在主项目中。在不同的类中有 api 控制器是不好的做法
-
不一定是坏事。但它给你带来了什么好处?我什么都想不出来。如果它使构建/运行您的应用程序变得更加困难......我认为您应该考虑您的方法的积极和消极因素,并决定它是否值得。
-
@mason 你能告诉我如何调用 web api 而不将其暴露在浏览器的网络选项卡上。
标签: c# asp.net-core class-library