Wie kann ich BindAttribute geschachtelte Eigenschaften in meinem Controller einschließen oder ausschließen?BindAttribute, verschachtelte Eigenschaften für komplexe Typen ausschließen
ich ein 'Stream Modell haben:
public class Stream
{
public int ID { get; set; }
[Required]
[StringLength(50, ErrorMessage = "Stream name cannot be longer than 50 characters.")]
public string Name { get; set; }
[Required]
[DataType(DataType.Url)]
public string URL { get; set; }
[Required]
[Display(Name="Service")]
public int ServiceID { get; set; }
public virtual Service Service { get; set; }
public virtual ICollection<Event> Events { get; set; }
public virtual ICollection<Monitor> Monitors { get; set; }
public virtual ICollection<AlertRule> AlertRules { get; set; }
}
Für die ‚create‘ Ansicht für dieses Modell, ich habe einen Blick Modell machte einige zusätzliche Informationen zur Ansicht weitergeben müssen:
public class StreamCreateVM
{
public Stream Stream { get; set; }
public SelectList ServicesList { get; set; }
public int SelectedService { get; set; }
}
Hier ist mein Beitrag erstellen Aktion:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include="Stream, Stream.Name, Stream.ServiceID, SelectedService")] StreamCreateVM viewModel)
{
if (ModelState.IsValid)
{
db.Streams.Add(viewModel.Stream);
db.SaveChanges();
return RedirectToAction("Index", "Service", new { id = viewModel.Stream.ServiceID });
}
return View(viewModel);
}
nun das alles funktioniert, abgesehen von den [Bind(Include="Stream, Stream.Name, Stream.ServiceID, SelectedService")]
Bit. Ich kann scheinbar keine Eigenschaften in einem verschachtelten Objekt einschließen oder ausschließen.
Danke, aber ich habe andere Aktionen in der Steuerung, die unterschiedlichen Eigenschaften binden müssen, so dass dieser Vorschlag würde das ausschließen. –