.cshtml文件中的Jquery语法
这是我的代码:
@{ ViewBag.Title = "My page"; Layout = "~/Views/Shared/_Layout.cshtml"; } $(document).ready(function () { $('#menucontainer').hide(); }); My page
@foreach (List item in (List[])ViewData["myList"]) { foreach (MyClass item1 in item) { if (item1.name.Equals("something")) { $(document).ready(function () { $('#idSomething').show(); }); continue; } } break; }
我在{
有一个断点。 它被击中然后continue;
。 脚本中的代码: $('#idSomething').show();
永远不会被击中! 这是为什么以及如何解决这个问题?
我也尝试过:
if (item1.name.Equals("something")) { @: ("#idSomething").show(); continue; }
而且, show()
调用断点不会被击中。
Javascript是客户端,因此无法逐步完成,因为C#代码可以在VS调试器中。
要逐步执行您的JavaScript代码,有几个工具,最着名的是Firebug for Firefox。 如果您在javascript选项卡中查看代码,则可以像在Visual Studio中一样设置断点并逐步/遍历/转换。
我不认为Razor足够智能自己处理这样的事情,尝试使用
标签,因此它知道它应该转储输出而不触及它:
@foreach (List item in (List [])ViewData["myList"]) { foreach (MyClass item1 in item) { if (item1.name.Equals("something")) { continue; } } break; }
如果您在Internet Explorer中运行,则JavaScript调试内置于Visual Studio中,但您必须在Internet Explorer看到的文档中设置断点。 在调试模式下启动项目时,您将在解决方案资源管理器中看到“脚本文档”部分。 如果您在该部分下找到JavaScript代码,则应该能够设置断点。
您正在混合服务器端调试和客户端调试。
在{
在C#代码中设置断点时,您在服务器端设置断点。 解析页面时,将触发断点。
但是在这一点上,javascript没有被执行。 它实际上甚至不是javascript,它只是被浏览器理解,并且将在浏览器中呈现页面时执行。 要打破javascript代码,您必须在浏览器的javascript控制台中设置另一个断点。