我如何调试 JQuery-BootGrid 数据 api 到 NancyFX
How do I debug JQuery-BootGrid data api to NancyFX
已编辑问题:
我用 jquery-bootgrid 数据写了一个页面 API。
它应该使用 AJAX 调用我的 NancyFX REST API,但事实并非如此。
- 客户端:
我正在从本地存储库提供 bootgrid:
<script src="~/scripts/jquery.bootgrid.min.js"></script>
也许我不应该使用 .min.js 文件,而应该使用打开的文件进行调试?如果是这样,你能告诉我该怎么做,或者给我指明方向吗?
页面代码为
...
data-toggle="bootgrid" data-ajax="true"
data-url="/cars/0" data-method="GET"
- 服务器端:
我有 NancyFx 提供的 html 页面,除了网格是空的外,其他页面都正常。有一个 API 模块,在 Visual Studio 中有一个断点(本地主机上的 运行),具有以下内容:
Get["/cars/{status:int}?current={current}&rowCount={rowCount}"] = parameters => ...
永远不会调用此代码。我如何才能强制调试器在检查路由之前捕获任何调用,并向我展示进入服务器的内容?
我正在使用 chrome 调试器。
当前 URL 不符合 Nancy 标准。我们不向路由添加查询字符串参数。
你会想按照以下方式写一些东西:
Get["/cars/{status:int}"] = parameters =>
{
var status = (int)parameters.status;
var current = (string)parameters.current.TryParse("");
var rowCount = (int)parameters.current.TryParse(10);
...
}
按照这些思路。 (从我的头顶上写下来)
另一种方法是像这样绑定请求:
Get["/cars/{status:int}"] = parameters =>
{
var request = this.Bind<MyRequest>();
...
}
public class MyRequest
{
public MyRequest()
{
RowCount = 10;
}
public int Status {get;set;}
public string Current {get;set;}
public int RowCount {get;set;}
}
将 nancy 更改为 Get["/cars/{status:int}"] = parameters =>
就成功地捕获了请求。
没有调用 ajax 因为我丢失了 JQuery 第一行...
$(document).ready(function() {
要获取当前行数和行数,您需要使用
var current = (int)Request.Form["current"];
var rowCount = (int)Request.Form["rowCount];
顺便说一句,Get 无法正常工作(我认为这是一个 Bootgrid 错误)所以我将其更改为 POST。
调试任何 jQuery 库的最简单方法是使用内置调试器,我很难使用 chrome 为此,所以我使用 Firefox,但如果你习惯chrome 然后使用它,功能几乎相同,但是使用 Firefox 你可以直接切换到与 html 中的任何元素关联的事件(在检查部分)
进入调试器后,设置断点并按 F5 或 Ctrl+F5 刷新页面(如果选择了有效断点),您可以看到与每个变量以及每个函数关联的所有值。
其次,使用调试器中的步入选项查看确切行指向的位置,如果它引用任何其他文件,它将在调试器菜单中自动弹出。 Firefox 的 spider monkey 非常擅长调试和关联代码(这完全是我的看法)。
3- 对于 api 调用,数据未被处理或未显示的原因很大程度上在于库的结构(数据是 called/fetched/retrieved 的参数),为此尝试在调试器中使用“监视表达式”选项,并尝试在控制台部分加载 dom 上实现代码,并在您认为有问题或应该显示值的节点上使用触发器。
已编辑问题:
我用 jquery-bootgrid 数据写了一个页面 API。
它应该使用 AJAX 调用我的 NancyFX REST API,但事实并非如此。
- 客户端:
我正在从本地存储库提供 bootgrid:
<script src="~/scripts/jquery.bootgrid.min.js"></script>
也许我不应该使用 .min.js 文件,而应该使用打开的文件进行调试?如果是这样,你能告诉我该怎么做,或者给我指明方向吗?
页面代码为
...
data-toggle="bootgrid" data-ajax="true"
data-url="/cars/0" data-method="GET"
- 服务器端:
我有 NancyFx 提供的 html 页面,除了网格是空的外,其他页面都正常。有一个 API 模块,在 Visual Studio 中有一个断点(本地主机上的 运行),具有以下内容:
Get["/cars/{status:int}?current={current}&rowCount={rowCount}"] = parameters => ...
永远不会调用此代码。我如何才能强制调试器在检查路由之前捕获任何调用,并向我展示进入服务器的内容?
我正在使用 chrome 调试器。
当前 URL 不符合 Nancy 标准。我们不向路由添加查询字符串参数。
你会想按照以下方式写一些东西:
Get["/cars/{status:int}"] = parameters =>
{
var status = (int)parameters.status;
var current = (string)parameters.current.TryParse("");
var rowCount = (int)parameters.current.TryParse(10);
...
}
按照这些思路。 (从我的头顶上写下来)
另一种方法是像这样绑定请求:
Get["/cars/{status:int}"] = parameters =>
{
var request = this.Bind<MyRequest>();
...
}
public class MyRequest
{
public MyRequest()
{
RowCount = 10;
}
public int Status {get;set;}
public string Current {get;set;}
public int RowCount {get;set;}
}
将 nancy 更改为 Get["/cars/{status:int}"] = parameters =>
就成功地捕获了请求。
没有调用 ajax 因为我丢失了 JQuery 第一行...
$(document).ready(function() {
要获取当前行数和行数,您需要使用
var current = (int)Request.Form["current"];
var rowCount = (int)Request.Form["rowCount];
顺便说一句,Get 无法正常工作(我认为这是一个 Bootgrid 错误)所以我将其更改为 POST。
调试任何 jQuery 库的最简单方法是使用内置调试器,我很难使用 chrome 为此,所以我使用 Firefox,但如果你习惯chrome 然后使用它,功能几乎相同,但是使用 Firefox 你可以直接切换到与 html 中的任何元素关联的事件(在检查部分) 进入调试器后,设置断点并按 F5 或 Ctrl+F5 刷新页面(如果选择了有效断点),您可以看到与每个变量以及每个函数关联的所有值。 其次,使用调试器中的步入选项查看确切行指向的位置,如果它引用任何其他文件,它将在调试器菜单中自动弹出。 Firefox 的 spider monkey 非常擅长调试和关联代码(这完全是我的看法)。 3- 对于 api 调用,数据未被处理或未显示的原因很大程度上在于库的结构(数据是 called/fetched/retrieved 的参数),为此尝试在调试器中使用“监视表达式”选项,并尝试在控制台部分加载 dom 上实现代码,并在您认为有问题或应该显示值的节点上使用触发器。