【问题标题】:How to debug javascript in cshtml如何在cshtml中调试javascript
【发布时间】:2016-02-11 10:06:14
【问题描述】:

我有一个以下格式的 .cshtml 文件(抱歉,如果我的 JavaScript 术语有点松散)

@model SomeViewModel
@{ Response.ContentType = "application/x-javascript"; }

$(function() {
         // Javascript event handler code here
    }
});

$(function ($) {
        // Javascript JQuery.DatePicker extensions here
    }
});

我相当确定在第二个 JS 块中存在一个需要修复的错误,但我正在努力调试它。我正在使用 Chrome。

由于解决方案中其他地方存在一个具有完全相同 javascript 的 MyDatepicker.js 文件和一个在运行时出现并且可以调试(差不多)的 MyDatepicker.min.js,因此情况有些复杂。

所以

  • cshtml 中的 js 代码发生了什么 - 我可以忽略它吗?
  • 如何确保加载非缩小版的 javascript
  • 如何确定缩小版的位置 脚本来自哪里?

按照下面给出的建议,我找到了以下课程。

public class MyDatePickerController : Controller
{
    // GET: /jquery.mydatepicker.js
    [Minify]
    [HttpGet]
    public ActionResult Index()
    {
        MyDatePickerViewModel model = new MyDatePickerViewModel(); 

        return View(model);
    }
}

这似乎解释了 javascript 是如何被缩小的。

鉴于有一个 MyDatePicker.js 文件以及 .cshtml 文件中的代码,我仍然不确定加载了哪个 javascript 副本。我将编辑其中一个,取出minify 并查看加载了哪个。


现在我已经找到了脚本被缩小的原因,我已经能够确定正在执行的 javascript 来自 razor 文件 (.cshtml)

【问题讨论】:

  • 为什么要投反对票?

标签: javascript c# google-chrome debugging razor


【解决方案1】:

检查您的 bundleconfig 文件,MyDatepicker.min.js 可能与其他 js 文件捆绑在一起。

【讨论】:

  • 项目中有2个BundleConfig.cs文件,一个在App_Start下,另一个在Mvc\App_Start下。 MyDatePicker.min.js & MyDatePicker.js 不在其中任何一个中。这足以断定 .js 文件没有被加载,而 RAZR 版本是?
  • 同时检查您的 _Layout.cshtml。
  • 按 Ctrl+Shift+F 并搜索 MyDatepicker。您可以在解决方案中找到所有带有“MyDatepicker”的文件。
  • 感谢您的帮助。通过找到控制器,我能够取消缩小,因此可以放心地开始调试。
猜你喜欢
  • 2014-01-15
  • 2020-08-28
  • 2018-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多