Asp.net mvc 5 对象没有';t支持属性或方法';igTree&x27;运行Infrastics树控件时出错

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。

我正在尝试使用EntityFramework数据对象(MVC5中的EF6)设置树视图。我在尝试渲染()我的树时遇到问题。。。。我收到“对象不支持属性或方法”igTree“”错误

设置树的我的代码(在我的视图中):

@(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>
确保这些脚本包含在视图或布局文件中

  • 如果未使用rigth路径或服务器上不存在脚本文件:

    检查浏览器网络控制台中的断开链接(IE中的F12/FF中的Chrome FireBug):

    如果脚本旁边出现404错误,您将知道它们没有正确加载,需要修复路径

  • 如果多次引用jQuery,也可能导致此错误:

    例如,
    部分由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>