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)。 –