2009-06-30 3 views
0

検証が失敗し、ValidationSummaryがオフになったときに、投稿済みデータで事前入力されたフォームを再作成する方法を教えてください。バリデーターは発射されますが、フォームをあらかじめ準備する方法はありません。MVCの無効なフォームが返信されたフォームデータを失う

+0

あなたはすでにこれを行っているかもしれませんが、投稿したコードからはわかりません。返す新しいビューにモデルを再割り当てしますか?もしそうでなければ、私はそのデータが投稿を通じて持続するとは思わない。 –

+0

NerdDinnerサンプルアプリケーション(http://nerddinnerbook.s3.amazonaws.com/Part5.htm、「編集エラーの処理」)で検証が行われる方法に興味があります。 –

答えて

2

あなたがされているデータモデルを返していることを確認してください...

catch (Exception ex) 
{ 
    TempData["Message"] = "An Error Occured while saving the product!"; 
    ModelStateDictionary modelDictionary = Validation.UpdateModelStateWithRuleViolation(product, ViewData.ModelState); 
    TempData["ModelDataDict"] = modelDictionary; 
} 

は誤りで、私は私が使用TempDataを変数ににModelStateを割り当てるが、どのように私はすでにポストされたデータを使用してフォームを再作成することができますフォームが無効になっているため、送信されたデータと同じデータにフォームが再バインドされます。

この方法では、コンテンツを失うことはありません。もちろん、これは入力が既にデータモデルにバインドされている場合にのみ機能します。 (

<label>Name</label> 
    <%=Html.TextBox("Name", Model.MyClass.Name)%> 
関連する問題