2011-08-02 15 views
1

上のページにリダイレクトする背景:Ajax呼び出しの失敗でのdivを更新、または成功

私は私が会社を作成することができますポップアップを持っているが、このポップアップは、会社名と呼ばれるテキストフィールドがあり、これがあります必要なフィールド(バッキングビューモデルの[Required]データアノテーションを使用)。

これで検証が正しく機能し、名前フィールドが空の場合、ajaxを使用するとポップアップにエラーメッセージが表示されます。

問題:検証エラーがない場合は

私は新しいページ(会社の詳細ページ)にリダイレクトできるようにする必要がありますが、代わりにこのページは、ポップアップの内容だったのdivに挿入されています。例:

public ActionResult Create(CreateCompanyModel model) 
{ 
     if(!ModelState.IsValid) 
     { 
      return PartialView("_AddCompanyEditor"); 
     } 

     Company c = CompanyService.Create(model.Name); 
     return RedirectToAction("Details", new { companyId = c.Id }); 
} 

いずれかの方法がありますか。ページ全体のリダイレクトを強制するか、標準のHTMLフォームに切り替えますか?

答えて

2

ブラウザは呼び出し元のjavascriptに何が起こったのかを通知せずにAJAXリダイレクトを処理します。 1つの選択肢は、ページをリダイレクトするjavascriptタグを含む小さなHTMLスニペットを返すことです。クライアント側のjQuery処理は、それを選択して実行する必要があります。

その他のほとんどのオプションは、結果に固有のものを監視し、応答に応じて異なる方法で動作するメソッドを実行するようにAjaxOptionsを変更することを含みます。私が現在取り組んでいるプロジェクトでは、すべてのAJAXリクエストが特別な「イベントフレームワーク」を通過するので、コントローラのアクションから返されるイベントに応じてさまざまなアクションを実行できます。

+0

ありがとうございます!私はあなたの最初の提案を使用しました、理想的な解決策ではなく、うまくいきます。 – Dimitar

関連する問題