.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控制台中设置另一个断点。