2

在我的 MVC 应用程序的 Http ActionResult 方法中,ModelState.IsValid() 测试失败。具体来说,日期时间值被视为无效。为什么会这样是个难题,因为它的准双胞胎被认为是有效的。它们在 View (HTML) 中以相同的方式连接到 Controller:

    <input id="BeginDateTime" name="BeginDateTime" required="true" />
    <input id="EndDateTime" name="EndDateTime" required="true" />

相关型号代码:

    public DateTime BeginDateTime { get; set; }
    public DateTime EndDateTime { get; set; }

相关控制器代码:

var criteria = new CriteriaContract
{
    AutoPurge = true,
    Serial = Serial,
    parameters = new Dictionary<string, string>(),
    type = DatasourceType.ReceiptCollection
};

string bdt = model.BeginDateTime.ToString();
string edt = model.EndDateTime.ToString();
criteria.parameters.Add("BeginDateTime", bdt); 
criteria.parameters.Add("EndDateTime", edt);   

调试器显示的值几乎相同;在最近的调试会话中,它们是:

BeginDateTime == "2013-08-19 14:43:12"
EndDateTime == "2013-08-19 14:43:10"

因此,具有相同的数据类型,在代码中被相同的处理,并且具有相同的格式,这些值中的一个怎么可能是有效的(BeginDateTime),而它几乎相同的孪生被视为无效?

更新

这一定是一些暂时的异常或缓存问题,因为再次清理和重建最终导致所有值都被视为有效......看图。

4

0 回答 0