2012-07-23 82 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)。