【发布时间】:2015-04-29 10:27:34
【问题描述】:
我有以下字段的模型:
-Id : Required (database generated)
-Title : Required
-Status : Required
-Comments
当我发布一个帖子时:
{
"title":"WOHOO",
"status":"STATUS"
}
一切运行良好。但是,当我使用以下内容发布帖子时:
{
"title":"WOHOO"
}
我收到模型状态问题,因为需要状态。但是,在我的 post 方法中是这样的:
[Route(""), ResponseType(typeof(MyModel))]
public IHttpActionResult PostMyModel(MyModel model)
{
// Save request in DB
model.status = "Waiting";
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.MyModels.Add(model);
try
{
db.SaveChanges();
}
catch (DbUpdateException)
{
if (ModelExists(model.id))
{
return Conflict();
}
else
{
throw;
}
}
return CreatedAtRoute("DisplayMyModel", new { id = model.id }, model);
}
我在此方法开始时设置状态,但 ModelState 在请求开始时保持原样。我可以使用ModelState.Clear() 清除 ModelState,但是如何重新验证新模型?
这是在 ApiController 中。
【问题讨论】:
标签: c# validation asp.net-web-api model modelstate