0
我从视图中接收模型。
一些值会自动填入MVC ModelState错误地报告错误
然而,一些必需的值需要手动添加,就像这样:所以在这里
[HttpPost]
public ActionResult Foobar(FooModel model, FormCollection collection)
{
// "timePicker" is a dropdown list containing different times
var time = collection["timePicker"].Split(':');
model.Hours = int.Parse(time[0]);
model.Minutes = int.Parse(time[1]);
if (ModelState.IsValid)
{
... // Do stuff
}
}
的问题:
ModelState.IsValid
是假。
我调试它,它声称model.Minutes
和model.Hours
未分配给。
...这是不对的,因为我有刚分配他们的值!
我考虑使用ModelState.Clear()
,但我不想手动检查所有其他信息是否有效。
有没有其他方法可以解决问题?
+1,但我不记得如果密钥不存在是否会引发异常。大概没有:) – mattytommo
@mattytommo好,在这种情况下,关键应该始终存在。顺便说一下,如果不能删除键(只读字典或不存在的键),则该方法返回false,如果键已被删除,则该方法返回true。 –
@JacobSpire顺便说一下,你也可以在这种情况下使用ViewModel,它可能会更好(或者,如上所述,自定义ModelBinder)。 –