2013-10-30 4 views
5

मैं अपने नियंत्रक में नेस्टेड गुणों को शामिल या बहिष्कृत कैसे कर सकता हूं?BindAttribute, जटिल प्रकारों के लिए नेस्टेड गुणों को छोड़ दें

मैं एक 'स्ट्रीम' मॉडल है:

public class StreamCreateVM 
{ 
    public Stream Stream { get; set; } 
    public SelectList ServicesList { get; set; } 
    public int SelectedService { get; set; } 
} 
:

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

इस मॉडल के लिए 'बनाने' देखने के लिए, मैं देखने के लिए कुछ अतिरिक्त जानकारी पारित करने के लिए एक दृश्य के मॉडल बना दिया है

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

अब, यह सब काम करता है, के अलावासे:

यहाँ मेरी बनाने के बाद कार्रवाई हैबिट मैं एक नेस्टेड ऑब्जेक्ट के भीतर गुणों को शामिल या बहिष्कृत नहीं कर सकता।

उत्तर

0

this answer के अनुसार, आप की तरह कुछ कर सकता है:

[Bind(Include="Name, ServiceID")] 
public class Stream 
{ 
... 
} 

और फिर

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Create([Bind(Include="Stream, SelectedService")] StreamCreateVM viewModel) 
{ 
... 
} 
+0

धन्यवाद, लेकिन मैं नियंत्रक में अन्य कार्यों विभिन्न गुणों के प्रति आबद्ध करने की जरूरत है कि है, इसलिए यह सुझाव उसको रोक देगा। –

संबंधित मुद्दे