【发布时间】:2013-03-05 12:50:05
【问题描述】:
我在我的 MVC4 项目上创建了一个 API 控制器
这是我创建的用于测试 API 功能的方法
private string Login(int id)
{
Employee emp = db.Employees.Find(id);
return emp.Firstname;
}
当我尝试使用 localhost:xxxx/api/controllerName/Login?id=2 访问此 api 时,我得到了
{"$id":"1","Message":"请求的资源不支持http方法'GET'。"}
我做错了什么?
另外,这是我的 api 配置文件
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
var json = config.Formatters.JsonFormatter;
json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
config.Formatters.Remove(config.Formatters.XmlFormatter);
}
【问题讨论】:
-
首先公开方法
-
@GiorgioMinardi,继续
[HttpGet] // Or [AcceptVerbs("GET", "POST")]... -
@giorgio Minardi,@gdoron 哦。多谢你们。我的错。很抱歉用如此琐碎的事情打扰社区。它现在可以工作,但我期待它以 d 格式“名字:约翰”给我结果。它只是给“约翰”。这是正常行为吗?
-
它返回“john”,因为你正在返回一个字符串,所以你得到一个 JSON 序列化的字符串。如果您想要一个具有 FirstName 属性的对象,则需要返回一个具有该属性的对象。
标签: asp.net asp.net-mvc json asp.net-web-api