フォームがあり、必須項目は顧客名だけです。したがって、私のモデルには次のものがあります。
[DisplayName("Customer name*:")]
[Required]
public string CustomerName
{ get; set; }
以前、私は HTML 投稿を行っていましたが、検証を含め、すべてが正常に機能していました。
ここで、重要な事実であるExt.direct.mvc ( http://code.google.com/p/ext-direct-mvc/ ) を使用してフォームを「ajax 化」し、データを Json に投稿しました。フォーマットとデータが正常に投稿されています。
コードにブレークポイントを設定すると (現在はデバッグ目的で変更されています):
[DirectInclude]
[HttpPost]
public ActionResult SaveOrUpdateOrderLines(CustomerOrderModel customerOrderModel)
{
if (!ModelState.IsValid)
{
return ModelState.JsonValidation();
}
return null;
CustomerOrderModel.CustomerOrderHeader.CustomerName = "" であることがわかります
しかし、ModelState.IsValid は true です。
今私が試したことのいくつかについて:
CustomerName = null であることを確認するために、ModelState.isValid をチェックする直前に次のコードを挿入しました。
customerOrderModel.CustomerOrderHeader.CustomerName = null;
TryUpdateModel(customerOrderModel) を使用してみましたが、次のエラー メッセージが表示されます。
TryUpdateModel がタイプ 'System.MissingMethodException' の例外をスローしました
「ルート」「CustomerOrderHeader」の名前が「customerOrderModel」に変更されてパラメーターに一致するように、json データを変更しようとしました。
これらのことはどれもうまくいきませんでした。では、検証が機能しなくなったというのは、何が間違っているのでしょうか? 問題をデバッグするには、どのような手順を実行できますか?
カウンセラーベンの編集
カウンセラーベンの編集2