【问题标题】:MVC3 AJAX ActionLink "Hello World" I can't get it to workMVC3 AJAX ActionLink“Hello World”我无法让它工作
【发布时间】:2012-04-20 17:15:58
【问题描述】:

我不知道为什么,但没有发生 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>

文件“contents/myscripts.js”

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

请帮忙!

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 对不起。我刚刚更新了它。它是从另一个帖子中复制的。我实际上在我的代码中使用了正确的。分别是 MyAjaxLink 和 MyAjaxDiv。此外,无论有没有脚本,它似乎都可以让我进入空白页面。
    • 知道了......你也有“Html.ActionLink”,你写/意思是写“Ajax.ActionLink”吗?
    • D:天哪!是的!唔。第二个问题......现在它工作了,但时间只更新第一次,然后它不再刷新......(编辑:我明白了,将它添加到 GetTime() 的前面...... [OutputCache(NoStore =真,VaryByParam = "",持续时间 = 0)]
    • 顺便说一句,当它正确完成时。我们不需要上面的“Ajaxify”代码。
    【解决方案2】:

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

      MicrosoftAjax.js
      MicrosoftMvcAjax.js 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多