2012-07-23 110 views
0

我想更新一些的div塊未來路 - >
我的更新視圖:阿賈克斯第二請求失敗

@Ajax.ActionLink("Show", 
      "About", 
      new AjaxOptions 
      { 
       HttpMethod = "POST", 
       InsertionMode = InsertionMode.Replace, 
       UpdateTargetId = "updateMe" 
      }) 
    <div id="updateMe"> </div> 

我的控制器:

int count = 0; 

    public ActionResult Index() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult About() 
    { 

     if (Request.IsAjaxRequest()) 
     { 
      count++; 
      ViewBag.count = count; 
      return PartialView(); 
     } 
     return RedirectToAction("Index"); 
    } 

我PartialView:

<h1>Hellow from Partial View ! @ViewBag.count </h1> 

此外我有.config文件中的這個

 <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 

和參考libriries:

<script src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> 

預期:首先點擊:
Hellow從管窺! 1

第二:
從部分視圖Hellow! 2

有:從部分視圖Hellow! 1

+0

控制器每創建一個請求都會創建,您不會將這個值傳遞給下一個請求。 – Styxxy 2012-07-23 22:53:33

+0

你是對的!我使場地靜態和所有的作品!謝謝! – 2012-07-23 22:57:29

+0

我添加了一些附加信息的答案。 – Styxxy 2012-07-24 15:39:39

回答

2

Controller類再次被每個請求初始化,因此您的字段count的值每次都被重新初始化。你會希望有這個「全球」。一種方法是將其定義爲static字段;但被警告,這可能會有一些意想不到的行爲(如static field in ASP.NET MVC)。