如何在模型中初始化值

本文关键字:初始化 模型 | 更新日期: 2023-09-27 18:02:05

我有这样一个类:

public class TicketPayoutModel 
{
    public string Logo { get; set; }     
}

在MainModel我有这个:

public TicketPayoutModel TicketPayOut { get; set; }

我这样做:

 TicketPayOut = new TicketPayoutModel();
 TicketPayOut.Logo = "test";

,当我尝试在视图中这样调用它时:@Model.TicketPayOut.Logo,我得到一个null。我不确定我做错了什么?任何建议吗?

编辑:this is my controller:

  public ActionResult PayOutConfirmation()
  {
     return View(new TicketPayOutModel());
  }

如何在模型中初始化值

你可以在模型的构造函数中初始化你的值。

public class TicketPayoutModel 
{
    public TicketPayoutModel()
    {
        this.Logo = string.Empty;
    }
    public string Logo { get; set; }     
}

或者使用新的c# 6变体:

public class TicketPayoutModel 
{
    public string Logo { get; set; } = string.Empty;     
}

你也可以通过构造函数的参数初始化你的值:

public class TicketPayoutModel 
{
    public TicketPayoutModel(string logo)
    {
        this.Logo = logo;
    }
    public string Logo { get; set; }     
}
public ActionResult PayOutConfirmation()
{
    return View(new TicketPayOutModel("logo.png"));
}

@Model。Logo不是@Model.TicketPayOut.Logo

为了测试,你可以return View(new TicketPayOutModel{Logo = "foo"});

看看你的控制器,你正在传递一个新的TicketPayOutModel实例给你的视图,这个的logo属性没有初始化,所以它会给null

像这样修改你的控制器方法-

  public ActionResult PayOutConfirmation()
  {
     var ticketPayOutModel = new TicketPayoutModel();
     ticketPayOutModel .Logo = "test";
     return View(ticketPayOutModel );
  }