2012-03-30 24 views
1

我還沒有找到直接回答這個問題的其他問題。我有像這樣Ajax.BeginForm TempData在文章後不輸出

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

在操作方法我設置TempData的一條消息,我要輸出的值在我查看的Ajax.BeginForm。

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

當我調試它,我看到它成功地將值添加到TempData。我也看到它在開始渲染視圖時仍然有價值。但由於我無法解釋的原因,它只是輸出爲

<div id="aaaa"> </div> 

爲什麼它不輸出值,當我知道它有它?

也是一樣的ViewData和ViewBag和示範性

+0

指定的UpdateTargetId是顯示的值在調試模式下也是如此? – Yasser 2012-03-31 07:11:12

+0

您是否問我在視圖中放置斷點時是否有值?是的,正如我在問題中所說的那樣。它在呈現視圖時具有值,它會觸發斷點以輸出值,但會輸出空字符串。 – quitstalin 2012-03-31 16:12:55

回答

0

你似乎是使用TempData的,而不是ViewData的是不太一樣的。你還提到你正在使用Ajax.BeginForm來調用這個控制器動作。由於這是一個AJAX調用確保您已在AjaxOptions使得所得到的部分是地方注入DOM

這裏一些相關鏈接 http://davidhayden.com/blog/dave/archive/2009/05/19/ASPNETMVCAjaxBeginForm.aspx

ViewData not shown in Ajax.BeginForm

+0

正如我在問題中所說的那樣,ViewData和ViewBag也是如此。這不是一個偏見。我無法設置UpdateTargetID,因爲它會將整個視圖注入到視圖中。我知道是因爲我對這些選擇感到厭煩,而且他們對問題沒有任何影響。 – quitstalin 2012-04-01 05:34:44

+0

實際上發現這個問題,默認情況下,MVC 3將 添加到web.config中。至少這是我在試用這個時發現的。 刪除它,這個工程! – Yasser 2012-04-02 05:54:15

+0

刪除會導致一堆javascript錯誤 – quitstalin 2012-04-03 04:12:59