2012-03-30 27 views
1

これに直接回答する別の質問が見つかりませんでした。私は出力したいTempDataを、メッセージの値を設定するアクションメソッドではそう投稿後にAjax.BeginForm TempDataが出力されない

@using (Ajax.BeginForm("Action", "Controller", new AjaxOptions())){ 
    //Stuff 
    <div id="aaaa"> @TempData["Key"] </div> 
} 

のように私のビューにAjax.BeginFormを持っています。

TempData["Key"] = "Value"; 
return View("View"); 

私がデバッグすると、値がTempDataに正常に追加されることがわかります。また、ビューのレンダリングを再開するときにも値が残っていることがわかります。しかし説明できない理由のために、それは単に

として出力します。
<div id="aaaa"> </div> 

なぜ私はそれがそれを知っているときに値を出力しないのですか?同じ

+0

ここDOM

にどこかに注入された部分的ように、あなたのAjaxOptionsでUpdateTargetIdが指定されていることを確認して呼び出すことは示された値ですので、デバッグモードでもビューで? – Yasser

+0

ビューにブレークポイントを置いたときにその値があるかどうか尋ねていますか?はい、私が質問で言ったように。値を出力するためにブレークポイントをヒットしますが、空の文字列を出力します。 – quitstalin

答えて

0

あなたが全く同じではありませんどのTempDataをしていないのViewDataを使用しているように見えるのViewDataとViewBagとモデルのプロパティのために行きます。また、このコントローラアクションを呼び出すためにAjax.BeginFormを使用していることを述べました。これは、AJAXは、いくつかの関連リンク http://davidhayden.com/blog/dave/archive/2009/05/19/ASPNETMVCAjaxBeginForm.aspx

ViewData not shown in Ajax.BeginForm

+0

私が質問したように、ViewDataとViewBagで同じことが起こります。これはパーシャルビューではありません。ビュー全体にビューを挿入するため、UpdateTargetIDを設定できません。私はそれらのオプションを使いこなしていたので、問題は変わっていないので分かります。 – quitstalin

+0

実際に問題が見つかった場合、MVC 3はデフォルトでweb.configに を追加しています。少なくともこれを試していたときに私が見つけたのはこれです。 これを削除すると、これが機能します! – Yasser

+0

これを削除すると、JavaScriptエラーが発生します – quitstalin

関連する問題