Странный пользовательский интерфейс Freeze ASP.Net MVC - PullRequest
0 голосов
/ 20 октября 2019

Поэтому я постараюсь объяснить, что происходит. Когда я запускаю свое веб-приложение asp.net, делается запрос к «GetRouteData». По какой-то причине, после того, как данные уже поступили, мой пользовательский интерфейс зависнет на добрых 20 секунд.

Странная часть:

Так что теперь, если я продолжу ипоставить точку останова на методе контроллера "GetRouteData", он останавливает, я нажимаю продолжить, и пользовательский интерфейс не зависает? Все гладкоЭто всегда будет гладко, если я поставлю точку останова и нажму продолжить, но остановится, если я просто позволю ей работать как обычно?

Действие моего контроллера:

public JsonResult GetRouteData([DataSourceRequest] DataSourceRequest request)
{
    return Json(_routeManagementService.GetMaterialRouteData().Select(x => new RouteDataViewModel {
        Id = x.Id,
        MaterialNumber = x.MaterialNumber,
        BoxSize = x.BoxSize,
        EnclosureIntegration = x.EnclosureIntegration,
        EnclosurePreparation = x.EnclosurePreparation,
        FinalWiring = x.FinalWiring,
        Kiesling = x.Kiesling ?? null,
        Packaging = x.Packaging,
        PanelAssembly = x.PanelAssembly,
        PanelWiring = x.PanelWiring,
        Test = x.Test,
        ProductionLineId = x.ProductionLineId,
        BoxSizeId = x.BoxSizeId
    }).OrderBy(x => PadNumbers(x.MaterialNumber)).ToDataSourceResult(request),JsonRequestBehavior.AllowGet);
}


public static string PadNumbers(string input)
{
    return Regex.Replace(input, "[0-9]+", match => match.Value.PadLeft(10, '0'));
}

My View:

@(Html.Kendo()
.Grid<RouteConfigurator.Core.ViewModels.RouteDataViewModel>()
.Name("RouteDataGrid")
.Columns(column =>
{
    column.Bound(x => x.Id).Width("150px");
    column.Bound(x => x.MaterialNumber).Width("150px");
    column.ForeignKey(x => x.ProductionLineId, (System.Collections.IEnumerable)ViewData["productionLines"], "Id", "Name").Width("125px");
    column.ForeignKey(x => x.BoxSizeId, (System.Collections.IEnumerable)ViewData["boxSizes"], "Id", "Size").Width("100px");
    column.Bound(x => x.PanelAssembly).Width("175px");
    column.Bound(x => x.PanelWiring).Width("175px");
    column.Bound(x => x.EnclosurePreparation).Width("175px");
    column.Bound(x => x.EnclosureIntegration).Width("175px");
    column.Bound(x => x.FinalWiring).Width("175px");
    column.Bound(x => x.Test).Width("175px");
    column.Bound(x => x.Packaging).Width("175px");
    column.Bound(x => x.Kiesling).Width("175px");
    column.Template(@<text> </text>).Title("");
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.ToolBar(toolbar =>
{
    toolbar.Create();
    toolbar.Save();
    toolbar.Excel();
})
.Excel(excel => excel.FileName("RouteData.xlsx").AllPages(true))
.Groupable()
.Sortable(x => x.Enabled(true).SortMode(GridSortMode.MultipleColumn))
.Filterable()
.HtmlAttributes(new { style = "height: 500px" })
.Scrollable(x => x.Virtual(true))
.DataSource(ds =>
{
    ds.Ajax()
        .ServerOperation(true)
        .Model(model =>
        {
            model.Id(x => x.Id);
        })
        .Sort(sort => { sort.Add("MaterialNumber").Ascending(); })
        .Events(events => events.Error("error"))
        .Update(update => update.Action("EditRouteData", "Route"))
        .Create(create => create.Action("CreateRouteData", "Route"))
        .Read(read => read.Action("GetRouteData", "Route"));

}))

Я полагаю, это как-то связано с тем, что веб-сокет занимает 22 секунды. Я действительно не уверен, что искать в этом случае? Может кто-нибудь направить меня в правильном направлении?

Network Record

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...