我遇到了一個我無法理解的問題。我定義了一個模型並使用它來創建一個表單,其中兩個是我想用來創建複選框字段的列表。問題是當我將值添加到這些列表時,我在定義模型實例時遇到了一個錯誤。C#MVC4未將對象引用設置爲對象的實例
讓我放一些代碼來清除事情。
我的模型類:
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; }
}
在的Controler:
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);
}
這給了我一個Object reference not set to an instance of an object
錯誤在這行Recurso model = new Recurso();
。 但如果我刪除了這部分代碼,它工作正常:
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模型沒有失敗=新RECURSO() –
燁,該行是沒有問題的,但是那是一個當我打開頁面時給我錯誤。 – FabioG