2

我正在构建一个 ASP.NET MVC3 网站。我的 .cshtml 文件中有一些 javascript:

<div>hello!</div>

<script type="text/javascript">
   $(document).ready(function () { alert("ready!"); })
</script>

谷歌浏览器的内置调试器没有看到这个 javascript 片段,所以我无法调试它。

如何在 Google Chrome 内置调试​​器的这个 javascript 片段中设置断点?

4

2 回答 2

1

奇怪,对我很有用:

  1. 转到Scripts选项卡
  2. 您将看到所有引用的 javascript 文件的下拉列表,选择与内联脚本对应的一个(:9038在下面的屏幕截图中)
  3. 设置断点

在此处输入图像描述

您也可以考虑将FireBug作为替代方案。

于 2011-07-07T22:09:37.197 回答
0

在 MVC3 中,运行 razor 视图引擎,我的大括号真的搞砸了视图的解析。

例如,如果您有:

@using(Html.BeginForm()){
<div>hello!</div>

<script type="text/javascript">
   $(document).ready(function () { alert("ready!"); });
</script>
}

您可能对脚本的大括号有疑问。尝试将其更改为:

  @{ Html.BeginForm(); }
    <div>hello!</div>

    <script type="text/javascript">
       $(document).ready(function () { 
            alert("ready!"); 
       });
    </script>
   @{ Html.EndForm(); }

这可能是也可能不是您问题的答案,但我花了很长时间才弄清楚我的一些表格出了什么问题。不过,我并没有在其中嵌入脚本。它是条件逻辑的块,会破坏我的一切。

编辑 经过更多研究,我发现有人遇到的一个问题导致我找到了解决方案:aspnet.codeplex.com/workitem/7551。

我的提交消息(来自我无法再访问的代码库)表明它可能是错误的标记。即使我们使用的是 XHTML 1.1 doctype,编写违规页面的开发人员也喜欢使用大写的标签。他还有很多属性被有条件地编译和/或填充。例如:

<div class="something @myHelper(someFlag)"></div>
<div @{ isSomeFlag ? <text>class="asdf"</text> : "" }></div>

我的解决方案应该被视为临时修复。

于 2011-07-07T22:16:40.247 回答