Значения маршрута - это простые значения, которые вы передаете в URL.Вы не можете пройти сложные объекты таким образом.Вы можете использовать TempData для передачи сложных объектов для использования по следующему запросу: https://www.learnrazorpages.com/razor-pages/tempdata
Вам нужно будет сериализовать объект в JSON и, вероятно, использовать Session в качестве механизма хранения данных, а не файл cookie по умолчанию.хранение на базеЯ использую следующие методы расширения для сериализации и десериализации сложных типов для использования с TempData:
public static void Set<T>(this ITempDataDictionary tempData, string key, T value) where T : class
{
tempData[key] = JsonConvert.SerializeObject(value);
}
public static T Get<T>(this ITempDataDictionary tempData, string key) where T : class
{
object o;
tempData.TryGetValue(key, out o);
return o == null ? null : JsonConvert.DeserializeObject<T>((string)o);
}
В вашем OnPost вы должны сделать это:
if (!dataObj.IsValid)
{
TempData.Set("errors", dataObj);
return RedirectToPage("./Error");
}
Тогда с ошибкой:
var errors = TempData.Get<WhateverTypeDataObjIs>("errors");