2012-07-06 84 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>