Excepción de rutas ambiguas se produjo en Xamarin Shell: [0:] Shell: Error al navegar hacia atrás.
En Xamari.Forms, utilizo la siguiente declaración de ruta en AppShell.xaml.cs :
routes.Add(“DSKhachHangHalf”, typeof(DanhSachKHHalf));
routes.Add(“chiTietHalf”, typeof(ChiTietKHHalf));
routes.Add(“rvatTu”, typeof(vatTu));
Luego navego de la siguiente manera: DanhSachKHHalf -> ChiTietKHHalf -> rvatTu
En DanhSachKHHalf.cs llamo a ChiTietKHHalf con el siguiente código:
await Shell.Current.GoToAsync(“chiTietHalf”);
En ChiTietKHHalf.cs llamo a vatTu con el siguiente código:
await Shell.Current.GoToAsync(“rvatTu”);
o
await Shell.Current.GoToAsync(“/chiTietHalf/rvatTu”);
o
await Shell.Current.GoToAsync(“DSKhachHangHalf/chiTietHalf/rvatTu”);
Cuando regreso a la página de vatTu a ChiTietKHHalf, obtengo la siguiente excepción:
[0:] Shell: Error al navegar hacia atrás: System.ArgumentException:
Rutas ambiguas coincidentes para:
//DEFAULTFlyoutItem10/IMPLDSKhachHangHalf/DSKhachHangHalf/chiTietHalf
coincidencias encontradas:
//DEFAULTFlyoutItem10/IMPL_DSKhachHangHalf/DSKhachHangHalf/chiTietHalf,//DEFAULTFlyoutItem10/IMPL_DSKhachHangHalf/DSKhachHangHalf/chiTietHalf
Nombre del parámetro: uri
davy.ai
La excepción indica que hay múltiples rutas que coinciden con la URI especificada. Esto puede ocurrir si hay múltiples rutas con el mismo nombre o si las rutas tienen patrones que se superponen. Para resolver este problema, puedes intentar especificar la ruta completa a la página a la que deseas navegar, incluyendo las rutas principales y secundarias. Por ejemplo, en lugar de usar “$”chiTietHalf” o “$”rvatTu”, puedes usar “$”/DSKhachHangHalf/chiTietHalf” o “$”/DSKhachHangHalf/chiTietHalf/rvatTu”. Esto asegurará que se utilice la ruta correcta para la navegación y evitará la ambigüedad que causó la excepción.