使用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,而是一个空白的页面。
<a data-ajax="true" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-update="#AjaxTestDiv" href="/Area/AjaxTester">Update</a>
尝试将方法切换到GET,无效。
解决方法
<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; }); });
原文地址:https://www.jb51.cc/aspnet/253564.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。