2011-02-12 55 views
0

我想知道如何在MVC2中使用Ajax。我在Visual Studio中創建了一個空項目,並使用以下代碼在Controllers/Home/HomeController.cs下添加了一個家庭控制器從ASP.NET MVC 2視圖調用AJAX方法

如何在單擊按鈕時使用AJAX調用HomeController上的AjaxTest方法並顯示文字呢?

public class HomeController : Controller 
{  
    public ActionResult Index() 
    { 
     return View(); 
    } 

    public ActionResult AjaxTest() 
    { 
     return Json("Whoever answers this rocks!"); 
    } 
} 

我添加了一個視圖下查看/主頁/使用下面的代碼Index.cs

<script type="text/javascript"> 
     function sayHello() { 
      alert("hello stackoverflow :)") 
     } 
    </script> 

    <div> 
     Hello 
     <button onclick="sayHello();"> Click Me! </button> 
    </div> 

回答

1

這應該工作:

<script type="text/javascript"> 
    function sayHello() { 
     $.get('/Home/AjaxTest', function(data) { alert(data) }); 
    } 
</script> 

請記住,包括jQuery的在頭部分的頁碼:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 

你可以al所以在項目的腳本文件夾中包含jQuery。 jQuery是ASP.NET MVC框架文件的一部分。

編輯:

更改您的行動

public ActionResult AjaxTest() 
{ 
    return Json("Whoever answers this rocks!", JsonRequestBehavior.AllowGet); 
} 

默認情況下,使用JSON在「這個請求被禁止獲取的結果,因爲敏感信息可能被泄露給第三方網站時,這是用於GET請求。要允許GET請求,請將JsonRequestBehavior設置爲AllowGet。「錯誤。

+0

不,不起作用。我必須錯過一些東西...... – Gaz 2011-02-12 22:48:59

0

不要忘了<button>元素默認提交表單,這可能會對您的AJAX調用產生意想不到的影響。考慮<input type="button" value="Click Me" />或在sayHello()函數中返回false