2011-11-09 61 views
0

我創建了一個局部視圖,並在其中使用了AJAx.BeginForm。在Post Edit Action Method中,我添加了VIEWDATA像這樣ViewData不在Ajax.BeginForm中顯示

 if (ModelState.IsValid) 
     { 
      service.SaveAccount(account); 
      TempData["message"] = "Account has been updated successfully!"; 

      AccountInfo accountInfo = new AccountInfo(); 
      accountInfo.AccountStatuses = service.GetAccountStatuses(); 
      accountInfo.AccountTypes = service.GetAccountTypes(); 
      accountInfo.CreditTerms = service.GetCreditTerms(); 
      return View("DisputeSubscriber", accountInfo); 

     } 
     else 
     { 
      return PartialView("_UpdateAccountDetails", account); 
     } 

並重定向到相同的局部視圖。在部分視圖中,我已添加像這樣:

@if (TempData["message"] != null) 
        { 
         <div class="Message"> 
          I am here. 
          @TempData["message"] 
         </div> 
        } 

但此消息不顯示。這個消息也在AJAX.BeginForm裏面。請建議

我需要重定向,而不是局部視圖主視圖或有我丟失的東西

回答

0

你似乎是使用TempData的,而不是ViewData的是not quite the same。你也提到你正在使用一個Ajax.BeginForm來調用這個控制器動作。由於這是一個AJAX調用確保您指定在AjaxOptions的UpdateTargetId使得所得到的部分某處注入DOM:

@using (Html.BeginForm(new AjaxOptions { UpdateTargetId = "foo" })) 
{ 
    ... 
} 

<div id="foo"></div> 
+0

我已經使用UpdateTargetId很好,但它沒有顯示在div。我看到該記錄已更新。我使用了警報,並顯示錯誤警報。 「@using(Ajax.BeginForm(」UpdateAccountDetails「,new AjaxOptions {OnSuccess =」alert('done')「,OnFailure =」alert('Error');「}))」 – DotnetSparrow

+0

@DotnetSparrow,元素更新後所有當你使用UpdateTargetId?我不是在談論TempData問題。在部分中放入一些虛擬數據,並確保它首先更新。 –

+0

您可以舉一個如何更新targetid>的例子嗎?我只是將updateTargetId設置爲我想要更新 – DotnetSparrow

相關問題