【发布时间】:2015-08-19 18:40:57
【问题描述】:
我有一个 ASP.NET 应用程序,如果查询有缺陷,我正在尝试使用 ModelState.IsValid 返回错误消息。我尝试过这样的事情:
[HttpGet]
[Route("")]
[Route("{id:int}")]
public IQueryable<ToDoTable> Get(int id = -1)
{
if (!ModelState.IsValid)
{
var errorList = (from item in ModelState
where item.Value.Errors.Any()
select item.Value.Errors[0].ErrorMessage).ToList();
return errorList.AsQueryable();
}
else
{
if (id == -1)
return db.ToDoTables;
else
return db.ToDoTables.Where(lt => lt.ID == id);
}
}
但是,问题在于errorList 的类型为string,并且该函数期望返回类型为ToDoTable,这是我创建的一个类。如何获得正确的返回类型?还是我需要改变函数的期望?我是否必须将方法添加到类中(甚至不确定是否可行)?
当ModelState.IsValid 为真时,该函数将返回类对象以及从我正在查询的数据库中收集的信息,并将其输出为JSON。示例:
[
{
"ID": 11,
"Title": "this is a test",
"Description": "this is specifically to test the put method",
"Due": null,
"Completed": true
},
{
"ID": 15,
"Title": "date test",
"Description": "datetime format",
"Due": "2015-08-10T02:41:29",
"Completed": true
}
]
【问题讨论】:
标签: asp.net asp.net-web-api modelstate