加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Ajax.ActionLink不工作,Response.IsAjaxRequest()始

发布时间:2020-12-15 18:38:57 所属栏目:asp.Net 来源:网络整理
导读:我一直在谷歌搜索/ SO:这个问题有一段时间,许多人似乎正在分享,但我没有找到任何成功的解决方案我的问题。 使用MVC3和剃刀。 主页包含: script src =“@ Url.Content(”?/ Scripts / jquery-1.5.min.js“)”type =“text / javascript” / script script
我一直在谷歌搜索/ SO:这个问题有一段时间,许多人似乎正在分享,但我没有找到任何成功的解决方案我的问题。

使用MVC3和剃刀。

>主页包含:

< script src =“@ Url.Content(”?/ Scripts / jquery-1.5.min.js“)”type =“text / javascript”>< / script>

< script src =“@ Url.Content(”?/ Scripts / MicrosoftAjax.js“)”type =“text / javascript”>< / script>

< script src =“@ Url.Content(”?/ Scripts / MicrosoftMvcAjax.js“)”type =“text / javascript”>< / script>
> AjaxTest.cshtml包含:

< div id =“AjaxTestDiv”> content< / div>

@ Ajax.ActionLink(“Update”,“AjaxTester”,新的AjaxOptions {UpdateTargetId =“AjaxTestDiv”})
> AjaxTester动作方法:

public string AjaxTester()
{
    if (Request.IsAjaxRequest())
    {
        return DateTime.Now.ToString();
    }
    else
    {
        return "FAIL";
    }
}

我总是得到“FAIL”返回,到一个空白页,不在目标div。

编辑:还要注意,如果我删除if(Request.IsAjaxRequest()),我仍然没有回到任何目标的div,而是一个空白的页面。

编辑2:看看生成的HTML,这是我的链接:

<a data-ajax="true" data-ajax-method="POST" data-ajax-mode="replace"
data-ajax-update="#AjaxTestDiv" href="/Area/AjaxTester">Update</a>

尝试将方法切换到GET,无效。

解决方法

默认情况下,ASP.NET MVC 3对所有Ajax。* helpers都使用不引人注意的jQuery。所以首先要摆脱所有的MicrosoftAjax脚本(这个无用的c ** p),并改为:
<script src="@Url.Content("~/Scripts/jquery-1.5.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

然后在您的web.config中简单地激活不引人注目的AJAX(如果尚未完成):

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

现在,jquery将不引人注目地AJAXify包含这些HTML 5 data- *属性的所有链接。

甚至更好的IMHO:

在你看来,只是:

@Html.ActionLink("Update","AjaxTester",new { id = "mylink" })

并在一个单独的javascript文件AJAXify这个锚点:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读