【发布时间】:2014-03-19 11:48:21
【问题描述】:
我遇到了一个我不太明白的问题。我定义了一个模型并使用它来创建一个表单,其中两个是我想用来创建复选框字段的列表。问题是当我向这些列表添加值时,我在定义模型实例时遇到错误。
让我放一些代码来清除一些东西。
我的模型课:
public class Recurso
{
public int IDRecurso { get; set; }
[Required(ErrorMessage = "Selecione um tipo de recurso.")]
[Display(Name = "Tipo Recurso")]
public int IDTipoRecurso { get; set; }
public DateTime DataHora { get; set; }
[Required(ErrorMessage = "Dê um titulo ao recurso.")]
[Display(Name = "Titulo")]
public string Titulo { get; set; }
[Required(ErrorMessage = "Escreva uma breve descrição do recurso.")]
[Display(Name = "Descrição")]
public string Descricao { get; set; }
[Required(ErrorMessage = "Adicione o ficheiro.")]
[Display(Name = "Recurso")]
public HttpPostedFileBase Ficheiro { get; set; }
public string Mime { get; set; }
[Display(Name = "Associar Recurso")]
public int Associacao { get; set; }
[Display(Name = "Tipos de Clientes")]
public List<int> TiposClientes { get; set; }
[Display(Name = "Clientes")]
public List<int> Clientes { get; set; }
}
在控制器中:
public ActionResult AdicionarRecurso()
{
Recurso model = new Recurso();
string email = this.GetEmailFromCookie();
string key = Admin.GetUserKey(email);
List<Entidades> clientes = Admin.GetAllClientes(email);
foreach (Entidades cliente in clientes)
{
model.Clientes.Add(cliente.IDEntidade);
}
List<TiposClientes> tipos = Admin.GetTiposClientes(email);
foreach (TiposClientes tipo in tipos)
{
model.TiposClientes.Add(tipo.IDTipoCliente);
}
return View(model);
}
这在Recurso model = new Recurso(); 这一行中给了我一个Object reference not set to an instance of an object 错误。
但是如果我删除这部分代码,它就可以正常工作:
List<Entidades> clientes = Admin.GetAllClientes(email);
foreach (Entidades cliente in clientes)
{
model.Clientes.Add(cliente.IDEntidade);
}
List<TiposClientes> tipos = Admin.GetTiposClientes(email);
foreach (TiposClientes tipo in tipos)
{
model.TiposClientes.Add(tipo.IDTipoCliente);
}
我不明白为什么。
我什至不确定是否可以为模型列表Clientes 和TiposClientes 生成复选框列表。
【问题讨论】:
-
我认为它失败不在这行 Recurso model = new Recurso()
-
是的,那一行不是问题,但那是我打开页面时出现错误的那一行。
标签: c# asp.net-mvc-4