MVC3 AJAX ActionLink" Hello World"我无法让它发挥作用

时间:2012-04-20 07:56:56

标签: jquery ajax asp.net-mvc asp.net-mvc-3 actionlink

我不知道为什么但是没有发生Ajax。它只是将我链接到一个新的空白页面并显示“NA”,因为它调用下面的GetTime()函数: 这是我在Index.cshtml的Hello World代码:

@ViewBag.Title = "Home Page"
<h2>@ViewBag.Message</h2>
<p>Hello there! Click Update to see the current time!</p>
<div id="MyAjaxDiv"></div>
@Html.ActionLink("Update", "GetTime", new {id="MyAjaxLink"}) 

这是HomeController.cs代码:

namespace MvcApplication1.Controllers {
    public class HomeController : Controller {
        public ActionResult Index() {
            ViewBag.Message = "Welcome to ASP.NET MVC!";
            return View();
        }
        public string GetTime() {
            if (Request.IsAjaxRequest())
                return DateTime.Now.ToString("hh:mm:ss tt");
            return "NA";
        }
    }
}

我关注此链接: Ajax.ActionLink not working, Response.IsAjaxRequest() is always false

然而,在该帖子所建议的分离的myscripts.js文件中,与AJAXifying代码没有区别。它仍然链接到一个带有“NA”的空白页面。 这是在_layout.cshtml

的标题中声明的代码
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Content/myscripts.js")" type="text/javascript"></script>

file“contents / myscripts.js”

$(function() { 
    $('#MyAjaxLink').click(function() { 
        $('#MyAjaxDiv').load(this.href); 
        return false; 
    }); 
});

请帮忙!

2 个答案:

答案 0 :(得分:0)

在我看来问题就是你的选择器。您的Javascript的目标是id =“mylink”,但该链接名为“MyAjaxLink”。尝试将Javascript更改为:

$(function() { 
    $('#MyAjaxLink').click(function() { 
        $('#MyAjaxDiv').load(this.href); 
        return false; 
    }); 
});

答案 1 :(得分:0)

当您对代码进行ajaxify时,请确保您的视图或主视图中都包含以下2个脚本

  MicrosoftAjax.js
  MicrosoftMvcAjax.js