如何使用Chrome调试我的MVC3网站?

时间:2011-07-07 22:01:05

标签: javascript debugging google-chrome google-chrome-devtools

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

<div>hello!</div>

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

Google Chrome的内置调试器没有看到这个javascript片段,所以我无法调试它。

如何在Google Chrome的内置调试器中的此JavaScript代码段中设置断点?

2 个答案:

答案 0 :(得分:1)

很奇怪,对我很有用:

  1. 转到Scripts标签
  2. 您将看到所有引用的javascript文件的下拉列表,选择与内联脚本相对应的文件({0}在我的屏幕截图中显示)
  3. 设置断点
  4. enter image description here

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

答案 1 :(得分:0)

在MVC3中,运行剃刀视图引擎,我的括号真的搞乱了视图的解析。

例如,如果你有:

@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>

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