Возникли проблемы с пользовательской навигацией по веб-странице в blazorC#

Место общения программистов C#
Anonymous
Возникли проблемы с пользовательской навигацией по веб-странице в blazor

Сообщение Anonymous »

На моем веб-сайте должна открыться новая страница, содержащая данные объекта, который вы хотите редактировать. Однако, похоже, он не может найти страницу, несмотря на то, что введено правильное значение. Я считаю, что проблема заключается в том, как я выполняю поиск страницы.
Он должен принимать «строку» данных, представляющую элемент, и использовать ее для создания страницы. .
вот код кнопки для доступа к веб-странице с индексной страницы:

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

@page "/"
@inherits VehicleDataModel

Vehicle Data

@if (vehList == null)
{
Loading...
}
else
{
@if (vehList.Count > 0)
{




Vehicles



@foreach (var veh in vehList)
{


@veh.VehicleNumber

[url=/vehiclelist/edit/@string.Format(@veh.VehicleNumber)]Edit[/url]


Delete





else
{

[h4]No record found[/h4]

}
вот код из формы страницы Razor, которую он вызывает, которая должна управлять самой страницей:

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

@page "/vehiclelist/add"
@page "/vehiclelist/edit/@string.Format({vehID:string})"


@inherits AddEditVehicleModel

@Title Vehicle





Vehicle






Save
Cancel


И, наконец, вот серверная часть указанной выше страницы:

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

using Microsoft.AspNetCore.Components;
using Fireserver.Data;
using Fireserver.Models;

namespace Fireserver.Pages
{
public class AddEditVehicleModel : ComponentBase
{

[Inject]
protected VehicleService VehicleService { get; set; } = null!;
[Inject]
public NavigationManager? UrlNavigationManager { get; set; }
[Parameter]
public string? vehID { get; set;  }

protected string Title = "Add";
public Vehicle veh = new();

protected override async Task OnParametersSetAsync()
{
if (vehID != null)
{
Title = "Edit";
veh = await VehicleService.Details(vehID);
}
}

protected async Task SaveVehicle()
{
if (veh.VehicleNumber != null)
{
await Task.Run(() =>
{
VehicleService.Edit(veh);
});
}
else
{
await Task.Run(() =>
{
VehicleService.Create(veh);
});
}
Cancel();
}

public void Cancel()
{
if (UrlNavigationManager != null)
{
UrlNavigationManager.NavigateTo("/");
}
}
}
}

Я пробовал изменить способ приема входных данных для каждой страницы, используя разные значения и методы HTML, но большинство из них либо выдают ошибку при нажатии кнопки, а остальные отправляют меня на настройка страницы ошибки на случай, если он не может найти указанную страницу.
В идеале он должен отправить меня на новую страницу с описанием элемента, на который щелкнули, как части отображаемого URL-адреса. элемент в формате, подходящем для его редактирования.
У меня есть основная функция, которая должна работать, реализованная в приведенном выше коде, а также еще одна, прокомментированная, чтобы показать оригинальный способ ее настройки.

Подробнее здесь: https://stackoverflow.com/questions/784 ... -in-blazor

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