如何初始化模型中的值?

时间:2015-07-10 06:30:44

标签: c# asp.net-mvc

我有这堂课:

public class TicketPayoutModel 
{

    public string Logo { get; set; }     
}
在MainModel中我有这个:

public TicketPayoutModel TicketPayOut { get; set; }

我这样做:

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

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

编辑:这是我的控制人员:

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

3 个答案:

答案 0 :(得分:0)

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

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"));
}

答案 1 :(得分:0)

@ Model.Logo not @ Model.TicketPayOut.Logo

要测试,你可以 return View(new TicketPayOutModel {Logo =“foo”});

答案 2 :(得分:0)

查看您的控制器,您将新的TicketPayOutModel实例传递给您的视图,此徽标属性未初始化,因此它将提供null

使用类似的东西修改控制器方法 -

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