これは私がAjaxのPOSTメソッドを呼び出すコントローラのアクションです:ModelStateを更新するには?
[HttpPost]
public ActionResult Add(Comment comment)
{
if (User.Identity.IsAuthenticated)
{
comment.Username = User.Identity.Name;
comment.Email = Membership.GetUser().Email;
}
if (ModelState.IsValid)
{
this.db.Add(comment);
return PartialView("Comment", comment);
}
else
{
//...
}
}
ユーザーはユーザー名と電子メールのフィールドを持っていないフォームを送信し、ログインしている場合ので、彼らはAJAX呼び出しで渡されません。アクションが呼び出されると、ModelStat.IsValidはこれらの2つのプロパティが必要であるためfalseを返します。有効な値をプロパティに設定したら、ModelStateを更新するためにモデル検証をどのように起動するのですか?
私はそれが起こるのを恐れていました。他の解決策? – frennky
恐れてはいけない、それらは最もクリーンな、 "最もMVC"のソリューションです。それらを適用することで、作業しているフレームワークについてもう少し学ぶことができます。 – m0sa
はい、わかっています。私はそれを簡単に保つためにホッピングしていました。カスタムモデルのバインダーを実装しました。その方法で検証を続けました。私を正しい方向に向けてくれてありがとう。 – frennky