2012-12-05 23 views
0

爲什麼這段代碼無法正常工作?鏈接顯示,但是當我點擊它時,請求不是異步的。相反,瀏覽器提出了正常的請求! :/注意:我正在使用ASP.NET MVC 4!爲什麼我的ASP.NET MVC4 ActionLink Ajax代碼沒有發出異步請求?

這裏是我的CSHTML塊代碼:

<div id="latestReviews"></div> 

@Ajax.ActionLink("Click here to see the latest review", "LatestReviews", "Home", null, new AjaxOptions { 
    UpdateTargetId = "latestReviews", 
    InsertionMode = InsertionMode.InsertAfter, 
    HttpMethod = "GET" 
}) 

這是我的控制器動作:

[HttpGet] 
    public PartialViewResult LatestReviews(){ 
     var review = RestaurantReviewQueries.FindTheLatest(_db.Reviews, 1).Single(); 
     return PartialView("_Review", review); 
    } 
+2

請改寫您的標題以反映您所問的內容。 –

+0

'請求不是異步的。相反,瀏覽器提出了一個正常的請求。你怎麼知道這個通話不是異步的?你的整個頁面最終刷新了嗎?我不確定你的意思是'而不是瀏覽器發出正常請求' – Nope

+0

正是!該頁面完全刷新! 「正常請求」=不是異步ahaha而不是在div中顯示結果,瀏覽器轉到另一個頁面並顯示內容 –

回答

1

我終於解決了這個問題!在_Layout.cshtml中有一個可選部分在視圖中呈現,稱爲「腳本」。我所做的僅僅是渲染「腳本」部分:

@section scripts { 
    <script type="text/javascript" src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 
} 

    ... 

<div id="latestReviews"></div> 

@Ajax.ActionLink("Click here to see the latest review", "LatestReviews", "Home", null, new AjaxOptions { 
    UpdateTargetId = "latestReviews", 
    InsertionMode = InsertionMode.Replace, 
    HttpMethod = "GET" 
})