栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么设置UnobtrusiveJavaScriptEnabled = true阻止ajax工作?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么设置UnobtrusiveJavaScriptEnabled = true阻止ajax工作?

在ASP.NET MVC 3中,有两件事:客户端验证和不易干扰的javascript,它们由web.config中的相应值控制:

<add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavascriptEnabled" value="true" />

客户端验证基于

jquery.validate.js
插件以及
jquery.validate.unobtrusive.js
Microsoft脚本。当您在包含HTML表单的视图中包含这两个脚本时,将根据您在模型上定义的数据注释规则执行客户端验证。查看视图的生成的HTML源代码时,您会注意到输入字段具有HTML5
data-*
属性,其中包含验证规则。然后,Microsoft的非侵入式验证脚本将读取这些规则并配置jquery验证插件。

不客气的javascript是不同的。它基于jquery。当您在ASP.NET MVC
3中使用

Ajax.*
HTML帮助程序之一(如)时
Ajax.Actionlink
,这些帮助程序还会
data-*
在相应的锚点上发出HTML5
属性。然后
jquery.unobtrusive-ajax.js
,您需要在页面中包含Microsoft
脚本来解释这些属性,并使用AJAXify这些链接。例如,当您编写时:

@Ajax.Actionlink("UTC", "GetTime", new { zone = "utc" }, new AjaxOptions { UpdateTargetId = "myResults" })

这将生成以下HTML:

<a data-ajax="true" data-ajax-mode="replace" data-ajax-update="#myResults" href="/Home/GetTime?zone=utc">UTC</a>

如您现在所见,有关如何执行AJAX请求的所有信息都包含在DOM中。因此,您可以有一个单独的javascript文件,您可以在其中订阅

click
此链接的事件,向
href
属性中包含的url发送AJAX请求,然后根据属性的值,将
data-ajax-mode
某些容器的html替换为
data-ajax-update
属性选择器。而这正是这样
jquery.unobtrusive-ajax.js
做的。只是它在一个单独的文件中,并且您的标记和javascript是独立的,而在以前的版本中情况并非如此。

因此,与ASP.NET MVC 1和2相反,在ASP.NET MVC
3中,jQuery是默认的javascript框架,HTML帮助器基于该框架。

MicrosoftAjax*
不再使用所有脚本。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号