我有一个出现这些错误的 cshtml 页面:

Uncaught ReferenceError: $ is not defined               TabNotes:2 
(anonymous function)                                    TabNotes:2 
TabNotes:12Uncaught ReferenceError: ko is not defined   TabNotes:12 
(anonymous function)                                    TabNotes:12 
(anonymous function)                                    TabNotes:23 

什么会导致这样的错误?我找不到任何理由为什么会这样。我尝试将 javascript 函数包装在 $(document).ready(function () { 中,但这也不起作用。代码如下

@model test.Web.Framework.Areas.Administration.Models.TabNotesModel  
@using (UI.DocumentReadyScript()) 
{     
    if (Model.meta.id.HasValue) 
    { 
        UI.jQuery("#tbl" + Model.meta.modelname).flexigrid(Model.Grid); 
    } 
} 
<form method="post" action="@Url.Action("TabNotes", new { cmd = "refresh" })" id="@Model.meta.modelname"> 
<div class="ui-state-highlight ui-corner-all highlight" data-bind="visible: meta.message"> 
    <span class="ui-icon ui-icon-info"></span><strong data-bind="text: meta.message"> 
    </strong> 
</div> 
@using (UI.BeginBlock("Administation.TabNotes", UI.Label("Notes", "Notes").ToString(), test.Web.Framework.Core.enumIcons.pencil, false, false)) 
{ 
    <table id="@("tbl" + Model.meta.modelname)"> 
    </table> 
}  
</form> 
<script type="text/javascript"> 
(function() { 
        var viewModel=ko.mapping.fromJS(@Html.Raw(UI.JavascriptEncode(Model))); 
        viewModel.getData=function() { return ko.mapping.toJSON( this  ); };    
        viewModel.setData=function(data){  
        $('#tbl'+this.meta.modelname()).flexigrid( data.Grid); 
        ko.mapping.updateFromJS(this,data);  
        }; 
        $('#@Model.meta.modelname').koform({viewmodel: viewModel , validate : {errorElement:'p' }  } ); 
        $('#@Model.meta.modelname').koform('applyBindings'); 
        $('#load-partial').click(function() { 
            $('#partial').load('@Html.Raw(@Url.Action("CreateNote", "Entity", new {modelEntity = @Model.meta.entity, itemId = @Model.meta.id}))'); 
        });  
    })();  
</script> 
 
 
<div id="partial"></div> 
<button type="button" id="load-partial">Create Note</button> 

编辑: jQuery 从母版页加载。

请您参考如下方法:

表示未定义jQuery($)和knockout(ko)。当脚本执行时库未加载时,通常会出现这种情况。

确保您在使用框架之前加载它们(即,在您的页面级脚本之前插入与框架相关的脚本标签)。如果没有问题,请检查开发人员面板中的网络事件,看看在下载框架时是否收到错误请求。可能是您正在异步加载框架,这意味着您将需要一个异步处理程序来开始执行您的页面级脚本。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!