目前正在使用服务堆栈使用以下控制器功能从本地数据库检索数据:
// GET: /Checklist/GetChecklists
public IEnumerable<Checklist> GetChecklists()
{
var dbFactory = new ServiceStack.OrmLite.OrmLiteConnectionFactory(SqliteFileDb, new SqlServerOrmLiteDialectProvider(), true);
using (var db = dbFactory.Open())
{
var retObj = db.Select<Checklist>();
return retObj;
}
}
我的数据库成功retrieves data。
问题是函数总是返回数据的类型而不是实际数据本身。
必须做什么才能使函数实际返回数据本身而不是类型?
由于
答案 0 :(得分:1)
您正在使用ServiceStack.ORMLite,但您没有使用ServiceStack,而是使用WebApi。
在屏幕截图中,我可以看到您的ChecklistController
继承自Controller
,但对于WebApi,它应该从ApiController
继承,以便序列化工作。
我还要将verb属性添加到方法中:
public class ChecklistController : ApiController
{
...
[System.Web.Http.HttpGet]
public IEnumerable<Checklist> GetChecklists()
{
...
}
在WebApiConfig
中,您需要确保have a route setup。通常,WebApi的前缀为api
,这是为了避免与MVC路由冲突。
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
然后拨打 / api /核对清单/ GetChecklists