Передача пользовательских классов между страницами - PullRequest
0 голосов
/ 14 апреля 2020

Я хотел бы передать свой пользовательский экземпляр класса со своей страницы создания на мою страницу сведений.

У меня довольно большой и сложный объект.

Попробовал передать его в TempData. Он потерпел неудачу, так как мой класс и его подклассы не сериализуемы и не имеют открытых c конструкторов.

Есть ли эффективная практика для установки общих данных между различными моделями / страницами в моем проекте? ListModel

public class ListModel : PageModel
{
    public IActionResult OnPost()
    {
        DataStructure item = DataStructure.Create();

        return RedirectToPage("./items/Details");
    }
}

DetailsModel

public class DetailsModel : PageModel
{
    [BindProperty(SupportsGet = true)]
    public DataStructure Item{ get; set; }

    public DetailsModel(DataStructure item)
    {
        this.Item= item;
    }
    public IActionResult OnGet()
    {
        if(Item != null)
        {
            I wish to go here!
        }

        return Page();
    }
}

Program.cs

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
}
...