3 つの部分ビューを含む 1 つのページがあります。私は明らかにIDの衝突を避ける必要があります。3 つの部分ビューすべてとメイン ページには、独自のビュー モデルがあります。メイン ビューでボタンをクリックすると、最初は非表示の div の html が更新され、コントローラーへの ajax 呼び出しによって部分ビュー (onSuccess: div.html(data) ) が返されます。その部分的なビューで、コントローラーに送信することでモデルを更新できます。データが正しく送信されていることがわかります。
必須フィールドを意図的に空白のままにして部分ビューを送信すると、戻ってきて、検証の概要またはフィールドにエラーが表示されるはずです。
モデルを返す前にコントローラーにこれを追加した場合のように:
ModelState.AddModelError("", "There was an error submitting data to the database.");
バインディング プレフィックスを変更しなければ機能します。
次のメソッドのようにバインディング プレフィックスを変更すると機能しません: コントローラー内:
public ActionResult SaveSchedHeaderSub([Bind(Prefix="SHS")]CPSchedHeaderSubViewModel theModel)
部分ビュー:
@{ ViewData.TemplateInfo.HtmlFieldPrefix = "SHS";}
はい、すべての正しい JavaScript ファイルがあります。このシナリオでは、モデルの状態エラーが機能していません。
どんな助けでも大歓迎です。このシナリオでは、可能な限り最善の方法でフィールドの名前にプレフィックスを付ける必要があります。
私は長年の読者であり、これが私の最初の質問です。
前もって感謝します。