ASP.Net Web API 不可用。如果更改为“天气预报”以外的名称
Posted
技术标签:
【中文标题】ASP.Net Web API 不可用。如果更改为“天气预报”以外的名称【英文标题】:ASP.Net Web API is not available. If changing to a name other than "weatherforecast" 【发布时间】:2020-11-11 16:14:17 【问题描述】:我使用 ASP.Net Web API 在我的项目中创建了 API,并且我
将WeatherForecastController.cs
的名称更改为
APIController.cs
和 chang "launchUrl": "FETL"
而不是 "launchUrl": "weatherforecast"
in launchSettings.json
所以我不能运行我的 API,但是如果我在launchSettings.json
中使用默认名称为WeatherForecastController.cs
和"launchUrl": "weatherforecast"
,那么就可以使用了。
为什么?又该如何解决呢?
这是launchSettings.json
中WeatherForecastController.cs
和"launchUrl": "weatherforecast"
的旧默认
"launchUrl": "weatherforecast" in launchSettings.json
WeatherForecastController.cs
API result
这是我要重命名的,但结果不可用。
"launchUrl": "FETL" in launchSettings.json
APIController.cs
API result
【问题讨论】:
重命名控制器。如果展开控制器,您将看到 WeatherForecastController。 Url weatherforecast 指向该控制器,不带“Controller”结尾。 【参考方案1】:像这样为您的控制器使用Route
,您可以使用您的控制器名称代替DefaultController
[Route("[controller]")]
[ApiController]
[AllowAnonymous]
public class DefaultController : ControllerBase
请确保您在控制器中定义了一个 GET 方法,类似这样。
[HttpGet]
public IEnumerable<string> Get()
return new string[] "Welcome" ;
【讨论】:
我尝试按照您的建议进行操作,但结果是静止的。 检查浏览器控制台。你有什么错误吗? 加载资源失败:服务器响应状态为404(未找到) 您还需要更改启动自动 您的意思是显示请求的代码吗?我很困惑。【参考方案2】:我尝试关注@vivek nuna 的建议
这就是发生的事情。
WeatherForecastController.cs
Result
当我重命名它时。
APIController.cs
Result
【讨论】:
是的!,我找到了问题,可以解决,必须在命名时包含“控制器”这个词。 如 APIController.cs、AController.cs 或 BController.cs 等以上是关于ASP.Net Web API 不可用。如果更改为“天气预报”以外的名称的主要内容,如果未能解决你的问题,请参考以下文章
如何使 ASP.NET Web API Web 服务在本地网络中可用
如何在Asp .Net Web API中的请求的整个生命周期中使类对象可用?
在 ASP.NET 中使用 Web API 优于 Web 方法的优势是啥
如果参数名称等于属性名称,则来自查询的 ASP.NET Core Web API 复杂类型绑定不起作用
有没有办法在 Asp.Net Core Identity 中将 PasswordHash 的数据类型从字符串更改为字节数组