5
Denetleyicide iç içe geçmiş özellikleri dahil et ya da hariç tut BindAttribute Nasıl eklenir?BindAttribute, Karmaşık türler için iç içe geçmiş özellikleri hariç tut
Bir 'Akım' modeli vardır:
public class StreamCreateVM
{
public Stream Stream { get; set; }
public SelectList ServicesList { get; set; }
public int SelectedService { get; set; }
}
: bu model için 'create' görünüm için
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; }
}
, ben görünümüne bazı ek bilgi aktarmak için bir görünüm modelini yaptık
[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);
}
Şimdi, bu tüm eserler, ayrıden:
İşte benim yaratmak sonrası eylemdirbit. Yuvalanmış bir nesnenin içeriklerini Dahil Et veya Dışarıda Bırak gibi görünmüyorum.
Teşekkürler ama farklı özelliklere Bind gerek denetleyici diğer eylemleri olmadığından bu öneri bunu engellerdi. –