我正在一个测试knockout.js项目中试用MVC3。我的结构如下:
Project Root
Scripts
jquery-1.4.4.js
knockout-1.2.0.debug.js
etc...
Views
Home
Index.cshtml
Shared
_Layout.cshtml
HTMLPage1.htm在我的_Layout.cshtml文件中,我有以下脚本块:
<script src="/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.tmpl.js" type="text/javascript"></script>
<script src="/Scripts/knockout-1.2.0.debug.js" type="text/javascript"></script>在我的Index.cshtml文件中,我试图在脚本块中使用ko对象。它运行得很好,但是在VS设计器中,我没有任何关于ko对象本身的intellisense。
如果我在根项目级别打开一个普通的HTML文件,并在其中放置一个脚本块,我就会在ko对象上获得intellisense。
我有什么问题?为什么intellisense不能在我的.cshtml文件中看到ko对象?
在VS中的调试输出中,我注意到以下内容:
Javascript Intellisense消息:JSIntellisense:内部/窗口(18:4):预期函数
Javascript Intellisense消息:JSIntellisense:内部/窗口(19:8):“ko”未定义
Javascript Intellisense消息:JSIntellisense:内部/窗口(18:4):预期函数
Javascript Intellisense消息:JSIntellisense:内部/窗口(19:8):“ko”未定义
Javascript Intellisense消息:JSIntellisense:内部/窗口(18:4):预期函数
Javascript Intellisense消息:JSIntellisense:内部/窗口(19:8):“ko”未定义
Javascript Intellisense消息:JSIntellisense:内部/窗口(18:4):预期函数
Javascript Intellisense消息:JSIntellisense:内部/窗口(19:8):“ko”未定义
等
发布于 2011-05-02 10:37:12
啊,弄明白了。我需要我的脚本块在实际的.js文件中引用我的.cshtml文件。
如:
@if (false)
{
<script src="/Scripts/knockout-1.2.0.debug.js" type="text/javascript"></script>
<script src="/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui.js" type="text/javascript"></script>
<script src="/Scripts/jquery.tmpl.js" type="text/javascript"></script>
<script src="/Scripts/knockout-1.2.0.debug.js" type="text/javascript"></script>
}@if (false)意味着它们在运行时不包含(因此使用我的主.cshtml文件中包含的脚本)。
https://stackoverflow.com/questions/5855033
复制相似问题