Asp.net mvc 5 对象没有';t支持属性或方法';igTree&x27;运行Infrastics树控件时出错
我正在尝试使用EntityFramework数据对象(MVC5中的EF6)设置树视图。我在尝试渲染()我的树时遇到问题。。。。我收到“对象不支持属性或方法”igTree“”错误 设置树的我的代码(在我的视图中):Asp.net mvc 5 对象没有';t支持属性或方法';igTree&x27;运行Infrastics树控件时出错,asp.net-mvc-5,infragistics,Asp.net Mvc 5,Infragistics,我正在尝试使用EntityFramework数据对象(MVC5中的EF6)设置树视图。我在尝试渲染()我的树时遇到问题。。。。我收到“对象不支持属性或方法”igTree“”错误 设置树的我的代码(在我的视图中): @(Html.Infragistics() .Tree() .Bindings(绑定=> { 绑定。 文本键(“名称”)。 主密钥(“L1TODSID”)。 ValueKey(“L1TODSID”)。 ChildDataProperty(“L2Name”)。 绑定(b1=> { b1。
@(Html.Infragistics()
.Tree()
.Bindings(绑定=>
{
绑定。
文本键(“名称”)。
主密钥(“L1TODSID”)。
ValueKey(“L1TODSID”)。
ChildDataProperty(“L2Name”)。
绑定(b1=>
{
b1。
TextKey(“L2Name”)。
ValueKey(“L2TODSID”)。
主密钥(“L2TODSID”);
});
})
.数据源(模型)
.DataBind()
.Render()
)
在添加“Render()”调用之前,我不会得到任何错误
我在基础设施论坛上读到一篇帖子,问他们是否会支持MVC5。。。他们不是在这样做吗?这是我的问题吗
此外,以下是我的呼叫脚本:
@(Html.Infragistics()
.Loader()
.ScriptPath(“~/igniteui/js/”)
.CssPath(“~/igniteui/css/”)
.Render()
)
提前谢谢
编辑:最终解决
以防万一有人遇到这种情况
我知道这个错误('对象不支持属性或方法…')可能是由jquery加载两次引起的。我想我已经彻底检查了所有的脚本调用。然而,作为.NET和MVC5(razor)的新手,我完全错过了布局页面末尾的这一行(我最初没有设置项目):
@Scripts.Render(“~/bundles/jquery”)
所以
最后,我在顶部的脚本块中初始化JQuery(通过调用缩小的文件),然后再次调用它,这就是导致错误的原因
非常感谢@nemesv,因为他比我在网上能找到的更详细地解释了加载过程,这让我有信心知道我在这方面做的事情是正确的。然后我只需要找到初始化JQ的第二个调用
再次感谢 默认情况下(如果不使用加载程序基础结构)
调用.Render()
将呈现以下HTML:
<script type="text/javascript">
$(function () {$('#Tree1').igTree({ dataSource: ... });});
</script>
确保这些脚本包含在视图或布局文件中
部分由Ajax多次加载,等等
确保一次引用所有脚本。加载程序
使用加载程序基础结构时,.Render()
调用将以不同的HTML呈现:
<script type="text/javascript">
$.ig.loader('igTree', function() {$('#Tree1').igTree({ dataSource: });});
</script>
$.ig.loader('igTree',function(){$('#Tree1').igTree({dataSource:});});
因此,加载程序将加载树所需的必要脚本,这样您就不需要包括infragistics.core.js
和infragistics.lob.js
。
在理论上使用加载程序时,无法获得异常
但是如果在Html.Infragistics().Loader()之后调用:@(Html.Infragistics().Loader()…
)
然后MVC包装器不知道您在使用加载器,所以它会像您不使用加载器时一样呈现HTML,所以如果您正确地没有引用infragistics.core.js
和infragistics.lob.js
,那么即使您“使用”加载器,也会得到异常
因此,在使用任何
基础设施控件之前,请确保调用@(Html.Infragistics().Loader()…
。
我在MVC 4和Ignite UI中也面临同样的问题。删除@Scripts.Render(“~/bundles/jquery”)
通过_Layout.cshtml解决了问题。您是否在浏览器的网络选项卡中检查了
~/igniteui/js/infragistics.core.js
和~/igniteui/js/infragistics.lob.js
是否正确加载?您的脚本引用在哪里?在布局中?在头标记中还是在正文中?如果在正文中在@RenderBody()
之后?只有在infragistics.lob.js
未正确加载时,才能出现此错误。。。
<script type="text/javascript">
$.ig.loader('igTree', function() {$('#Tree1').igTree({ dataSource: });});
</script>