2013-10-25 39 views
0

我正在研究ASP.net MVC 2.0应用程序。我正在使用Ajax表单。在那里我有一个下拉和一个按钮。Ajax的奇怪行为

点击按钮后,如果Ajax请求成功,我想重新加载下拉菜单。

因此,我在Ajax窗体的回调函数内部调用了一个jQuery Ajax函数。

在这个jQuery的Ajax函数中,我正在编写代码来获取新的数据和绑定以便下载,以便它将被重新加载新数据。

在这里,每件事情都是第一次正常工作。但是,当我点击下一次的按钮时,Ajax jquery函数被调用,但它不会触及控制器操作方法。

代码:

这里,是我的jQuery函数:

<script type="text/javascript"> 
     function GetData() { 
      $.getJSON("/Home/GetUsers", null, function (data) { 
       var selectList = $("#ddlUsers"); 
       selectList.empty(); 
       alert("Inside Get Json method of jquery Ajax"); 
       var defaultoption = $('<option>').text("--Select--").val(""); 
       selectList.append(defaultoption); 
       $.each(data, function (index, optionData) { 
        var option = $('<option>').text(optionData.Text).val(optionData.Value); 
        alert(option); 
        selectList.append(option); 

       }); 
      }); 
     } 
     function Callback() { 
      GetData(); 
      alert("Sucessfully done"); 
     } 
     function Failed() { 
      alert("Sorry, an error occured while processing your request"); 
     } 

方法中位指示:

[HttpGet] 
    public JsonResult GetUsers() ----> Method that is called from GetData() Ajax call 
    { 
     var data = GetUsersList(); 
     return Json(data, JsonRequestBehavior.AllowGet); 
    } 

public SelectList GetUsersList() 
{ 
    Db Fectch 

    return data; 
} 

我无法理解为什么上面所指出的方法不要求第二但是GetData()被调用。

请帮助..

+1

浏览器是否可以缓存ajax调用,而不是从服务器调用它? –

+0

@whoshotjr ..确实+1您的评论。它真的是因为浏览器缓存..它不是调用服务器..谢谢 –

回答

1

我认为这是高速缓存,试试你的控制器方法之前加入这一行:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")] 

你也可以把这个线在控制器的顶部,如果你想它适用于所有方法。

+1

@ ChtiWi..Superb工作很好..我有本打破我的头一个小时。你在一分钟内解决了它..谢谢了很多.. –