在页面之间传递自定义类

问题描述 投票:-1回答:1

我想将自定义创建的类实例从“创建”页面传递到“详细信息”页面。

我有一个很大而又复杂的对象。

已尝试将其传递给TempData veriable。由于我的班级而失败,并且它的子类不能序列化,也没有公共构造函数。

在我的项目中的不同模型/页面之间是否设置共享数据是一种好习惯?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>();
            });
}
c# asp.net-mvc razor
1个回答
0
投票

您可以通过构造函数将参数传递给视图。请检查example from tutorial

© www.soinside.com 2019 - 2024. All rights reserved.