Как отладить API данных JQuery-BootGrid для NancyFX

Вопрос отредактирован:

Я написал страницу с API данных jquery-bootgrid.

Он должен вызывать с помощью AJAX мой REST API NancyFX, но это не так.

  1. Сторона клиента:

Я обслуживаю загрузочную сетку из локального репо:

<script src="~/scripts/jquery.bootgrid.min.js"></script>

Может быть, мне следует использовать не файл .min.js, а открытый для отладки? Если да, не могли бы вы рассказать мне, что делать, или указать мне направление?

Код страницы

...
data-toggle="bootgrid" data-ajax="true" 
data-url="/cars/0" data-method="GET"
  1. Сторона сервера:

У меня есть html-страница, обслуживаемая NancyFx, и она отображается нормально, за исключением пустой сетки. В Visual Studio есть модуль API с точкой останова (работает на локальном хосте) со следующим:

Get["/cars/{status:int}?current={current}&rowCount={rowCount}"] = parameters => ...

Этот код никогда не вызывается. Как заставить отладчик перехватывать ЛЮБОЙ вызов до проверки маршрутизации и показывать мне, что поступает на сервер?

Я использую отладчик хрома.


person pashute    schedule 13.10.2015    source источник


Ответы (2)


Текущий URL-адрес недействителен по стандартам Нэнси. Мы не добавляем параметры строки запроса в маршрут.

Вы хотели бы написать что-то вроде строк:

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;}
}
person Phill    schedule 14.10.2015
comment
См. следующий ответ для получения подробной информации об этом в соответствии с ответом @Phill, который указал в правильном направлении. - person pashute; 21.10.2015

Изменение nancy на Get["/cars/{status:int}"] = parameters => помогло перехватить запрос.

Ajax не вызывался, потому что я потерял первую строку JQuery... $(document).ready(function() {

Чтобы получить текущий и rowCount, вам нужно использовать

var current = (int)Request.Form["current"];
var rowCount = (int)Request.Form["rowCount];

Кстати, Get не работал (я думаю, это ошибка Bootgrid), поэтому я изменил его на POST.

person pashute    schedule 20.10.2015