我尝试按照文章Build RESTful API's with ASP.NET Web API学习如何创建RESTful API。
我创建了第一个项目和控制器Contact
。
public class ContactController : Controller
{
// GET: Contact
public string[] Index()
{
return new string[]
{
"Hello",
"World"
};
}
}
但是当我在浏览器中加载URL时,而不是获得文章(["Hello","World"]
)中描述的响应。我收到的回复是System.String[]
。
我不明白我错过了什么。
顺便说一句,这篇文章是从2013年开始的。有没有人知道一篇好文章可能有点新鲜?答案 0 :(得分:1)
您现在拥有的是简单的ASP.NET MVC控制器。对于Web API控制器,您应该从ApiController
而不是Controller
继承您的控制器:
public class ContactController : ApiController
动作名称也应以HTTP动词开头。如果您要向/api/contact
端点发送GET请求,则会收到错误
请求的资源不支持http方法' GET'。
默认情况下,Web API控制器的路由中不使用操作名称。如果您要检查默认路由配置,它将是api/{controller}/id
。通过HTTP请求方法选择正确的操作。在您的情况下,它应该是GetXXX
或只是Get
答案 1 :(得分:0)
您无法从Web Apis返回常规基元。如果你使用的是.net的常规MVC Web API,至少如果没有。所以,如果是这种情况,你可以做类似
的事情public class ContactController : Controller
{
// GET: Contact
public JsonResult Index()
{
return Json(new { value1: "Hello", value2: "world" }, JsonRequestBehavior.AllowGet);
}
}
希望这有帮助