2012-07-06 121 views
2

好的,所以我花了整整一天的時間來試圖找出這一個 - 但我不能!這是我的問題。無法在ASP.NET MVC Razor中獲得Ajax

我正在使用ASP.NET MVC 4 & Razor。我的目標是做一些BASIC Ajax。我想要做的就是在我的頁面上有一個div,它通過Ajax鏈接進行更新 - 以證明Ajax正在工作。

我認爲這個問題與我需要使Ajax工作的腳本文件有關。默認情況下,我沒有,甚至有一個腳本目錄 - 所以我創造了一個,發現MicrosoftAjax.js,MicrosoftMvcAjax.js和jquery.unobtrusive-ajax.min.js-並添加引用到_Layout.cshtml頭內部

這裏是我已經有了:

在我_Layout.cshtml,我有我的頭以下

<script type="text/javascript" src="../../Scripts/MicrosoftAjax.js"></script> 
<script type="text/javascript" src="../../Scripts/MicrosoftMvcAjax.js"></script> 
<script type="text/javascript" src="../../Scripts/MicrosoftMvcValidation.js"></script> 
<script type="text/javascript" src="../../Scripts/jquery.unobtrusive-ajax.min.js">/script>` 

在我HomeController.cs我有:

[HttpGet] 
    public string GetStatus() 
    { 
     return DateTime.Now.ToLongTimeString(); 
    } 

在我的About.cshtml文件,我有以下幾點:

@Ajax.ActionLink("Ajax Test", "GetStatus", new AjaxOptions{UpdateTargetId="testtarget", HttpMethod = "Get"})`enter code here` 
< div id="testtarget">Test Div</div> 

當我編譯應用程序,我可以看到「阿賈克斯測試」鏈路和「測試事業部」的文本。

當我點擊「Ajax測試」時,我被重定向到Home/GetStatus並打印出當前時間到空白頁面。

這顯然不是我所期待

+1

你有沒有jQuery也包含在_layout?因爲顧名思義,'jquery.unobtrusive'在內部使用jquery ...而另一件事,而不是「硬編碼」路徑使用'Url.Content'而不是例如:'' – nemesv 2012-07-06 15:20:11

回答

0

好吧,我只是想它OUT-

JavaScript文件不再使用後MVC2-代替,只要加入jQuery和jqueyr.unobtrusive-阿賈克斯MicrosoftAjax。分鐘就頭戴式則完全相同的代碼工作:)

0

對於人在看這篇文章的答案,我還要補充:確保正確配置你的web.config允許不顯眼的圖書館工作

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