【发布时间】:2021-05-14 15:29:21
【问题描述】:
我是 .NET 框架的新手,我的公司还没有使用 Core,所以我想弄清楚为什么我的 Web 应用程序 api 显示 400。我有一个普通的 Web 表单项目并添加了一个名为 TagController.cs 的控制器类。我的项目在端口 44318 上,我尝试访问 localhost/44318/api/tag 没有运气。我还尝试添加一个带有 api 子文件夹的控制器文件夹和其中的控制器,但无济于事。我已经发布了我的项目层次结构和错误本身的图像。我有一种感觉,没有 global.asax 的项目可能与它有关,但另一个项目中有一个。也许 TagController.cs 指向另一个端口?非常感谢任何帮助。
TagController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using ClarityDBWebFormsRedis;
using StackExchange.Redis;
namespace ClarityDBWebFormsRedis
{
public class TagController : ApiController
{
// GET api/<controller>
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/<controller>/5
public string Get(string data) {
return "doge";
}
// POST api/<controller>
public void Post([FromBody] string value)
{
}
// PUT api/<controller>/5
public void Put(int id, [FromBody] string value)
{
}
// DELETE api/<controller>/5
public void Delete(int id)
{
}
}
}
【问题讨论】:
-
我没有 api 配置文件。有一个 web.config 文件,但这个文件没有附带 api.config,因为它是一个 Web 表单项目(至少我假设这就是原因。)我很抱歉,我来自不同的堆栈背景。
-
我可以把它放在项目文件夹中吗?还是需要预先配置?
-
这是一个 Web 表单项目,还是一个 MVC 项目?您需要(并且应该)正确标记此问题。显然对于一个 web 表单(asp.net web forms application),那么你不能使用控制器。
-
@AlbertD.Kallal 当然,感谢您提出带有适当标签的明确问题,但您仍然可以猜到 WebForms 项目的内容,因为我提到“我有一个普通的 Web 表单项目(... )" 并且项目结构的第一个屏幕截图显然不是基于 MVC。当他要求 WebForms 项目时,在这里添加 asp.net-mvc 标记似乎不合适?像
webforms或.net-framework这样的标签会更合适。 -
啊好吧 - 我的错 - 这是一个网络表单项目 - 所以应该添加标签 - 是的,我错过了阅读 - 所以网络表单标签肯定会清除这个。