【问题标题】:How to debug c# code being called by JqGrid?如何调试 JqGrid 调用的 c# 代码?
【发布时间】:2013-12-09 01:58:51
【问题描述】:

我有一些这样的代码:

@{
ViewBag.Title = "Home";

var grid = new JqGridHelper<Project>("projects",
dataType: JqGridDataTypes.Json,
methodType: JqGridMethodTypes.Post,
pager: true,
rowsNumber: 10,
sortingName: "Id",
sortingOrder: JqGridSortingOrders.Asc,
subgridEnabled: true, 
url: Url.Action("ProjectsByUser"), <---- Here
etc...

据我了解,url: URL.Action("FunctionName") 将调用我项目中某处存在的名为“FunctionName”的函数。我想做的就是在函数运行时查看函数中的变量,但是在 VS 中放置断点不起作用。那么我将如何执行donspect,但调试器只显示正在执行的脚本的代码,而不是那个?我已经尝试通过在我想要在 c# 代码中的代码之前设置断点来使用 Chrome 进行调试。

【问题讨论】:

    标签: c# javascript debugging jqgrid url-action


    【解决方案1】:

    我不确定为什么放置断点不起作用(假设您开始在调试器中运行项目,并且断点位于正确的位置)。

    您可以将以下代码添加到您要调试的方法中:

    #if DEBUG
    System.Diagnostics.Debugger.Break();
    #endif
    

    这将强制中断调试,如果当前没有附加调试器,则会提示附加调试器。

    请记住在完成故障排除后删除代码。虽然#if DEBUG 会阻止该代码成为发布版本的一部分,但您不想冒险意外发布包含该中断指令的 DEBUG 版本。

    【讨论】:

    • 我试过了,但什么也没发生。我可以在上面显示的代码行放置一个断点,但是因为 url.action 行只是为 JqGridHelper 函数设置一个选项,所以没有什么可以进入的。我不确定如何调用 c# 代码,但似乎无法识别断点或您提到的方法。是否甚至调用了 c# 代码?
    • 查看 HTML 的源代码,看看 Url.Action 生成了什么 URL。
    • 我想是这样的:url:'/home/ProjectsByUser'。 home是包含上面代码的页面,ProjectsByUser是我要调用的函数。
    • 程序如何知道在哪里可以找到函数 ProjectsByUser?这需要在任何地方指定吗?
    • 如果这是一个 ASP.Net MVC 项目,您指定的 URL 将(默认)被路由到 HomeController 类中的 ProjectsByUser 方法。
    猜你喜欢
    • 1970-01-01
    • 2017-08-13
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多