Изменение значения раскрывающегося списка приводит к дублированию страниц на страницах бритвы.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Изменение значения раскрывающегося списка приводит к дублированию страниц на страницах бритвы.

Сообщение Anonymous »

Я хочу реализовать поиск, нумерацию страниц и сортировку на страницах Razor с помощью Ajax. Я использую компоненты представления для отображения данных из базы данных, для этого это мой код по файлам
в ViewComponent.cs

Код: Выделить всё

    public async Task[i] InvokeAsync(int categoryId, string search, string sort, int page, int pageSize)
{

var items = await _equipmentRepository.GetEquipmentActive();

// Filtering by category
if (categoryId > 0)
{
items = items.Where(x => x.HealthProjectUsefilCategoryId == categoryId).ToList();
}

// Searching
if (!string.IsNullOrEmpty(search))
{
items = items.Where(x => x.Name != null && x.Name.Contains(search, StringComparison.OrdinalIgnoreCase)).ToList();
}

// Sorting
items = sort switch
{
"Price" => items.OrderBy(x => x.Price).ToList(),
"Priority" => items.OrderBy(x => x.Priority).ToList(),
_ => items
};

// Pagination
var pagedItems = items.Skip((page - 1) * pageSize).Take(pageSize).ToList();

// JSON response
var result = new
{
Items = pagedItems.Select(x => new
{
x.Id,
x.Name,
x.Price,
x.Priority,
x.Description,
x.ImageUrl,
x.ModifyDate
}),
TotalCount = items.Count,
CurrentPage = page,
TotalPages = (int)Math.Ceiling(items.Count / (double)pageSize)

};

foreach (var item in items)
{
Console.WriteLine($"Equipment: {item.Name}, ID: {item.Id}");
}

var viewModel = new EquipmentViewModel
{
Equipments = pagedItems,
TotalCount = items.Count,
CurrentPage = page,
TotalPages = (int)Math.Ceiling(items.Count / (double)pageSize)
};
return View(viewModel);

В представлении в Default.cshtml это мой код

Код: Выделить всё

@using DNTPersianUtils.Core
@using KH.Services;
@model KH.Models.EquipmentViewModel;

@foreach (var card in Model.Equipments)
{
[url=#]
[img]@card.ImageUrl[/img]
[/url]

[url=#]@card.Name[/url]


[/i]
@DNTPersianUtils.Core.PersianDateTimeUtils.ToShortPersianDateString(card.ModifyDate).ToPersianNumbers()



@card.Description
[list]
[*][i][/i]تعداد مورد نیاز:
@card.Quantity.ToPersianNumbers()
[*][i][/i]
قیمت:@DNTPersianUtils.Core.PersianNumbersUtils.ToPersianNumbers(string.Format("{0:N0}",
(int)@card.Price)) ریال
@* (@card.Price.ToPersianNumbers())*@
[*][i][/i]تعداد تهیه شده تاکنون .
[*]
[i]                        class="fas fa-play mr-2">[/i]کمک مالی

[/list]


}
также это моя модель представления, которую я использую в представлении

Код: Выделить всё

public class EquipmentViewModel
{
public IEnumerable? Equipments { get; set; } // The list of equipment items
public int TotalCount { get; set; }                   // Total number of filtered items
public int CurrentPage { get;  set; }                  // The current page number
public int TotalPages { get; set; }                   // Total number of pages
}
И это мой код, который вызывает компонент представления в Index.cshtml, а также я переопределяю код Ajax

Код: Выделить всё

 

Equipments


all category
@foreach (var category in Model.Categories!)
{
@category.Name
}



price
priority




@await Component.InvokeAsync("EquipmentsList", new
{
categoryId = 0,
search = "",
sort = "Date",
page = 1,
pageSize = 10
})

@for (int i = 1; i = 3 || $(this).val().length === 0) {
loadEquipmentData(1); // Load data for the first page
}
});

$(document).off('click', '.page-link').on('click', '.page-link', function (e) {
e.preventDefault(); // Prevent default navigation behavior
const page = $(this).data('page');
loadEquipmentData(page); // Load data for the clicked page
});
});


}
Я проверил источник страницы: после изменения любого поля раскрывающегося списка будет создана дубликат страницы, которая начинается с тега HTML и заканчивается контейнером. Кажется, у меня проблема с загрузкой Ajax или jquery.
Что вы предлагаете?

Подробнее здесь: https://stackoverflow.com/questions/793 ... azor-pages
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»