มี 2 นางแบบ (หนังและนักแสดง)
ฉันสามารถเรียกดูรายการภาพยนตร์ที่มีนักแสดงที่เลือกไว้ได้แล้ว และฉันสามารถส่งออกทั้งหมดผ่าน Html.DisplayNameFor แต่ฉันต้องการใช้ DDL เพื่อส่งออก Icollection Actors แทนที่จะวนด้วยรายการย่อยใน @Html.DisplayNameFor(model => model.Actors) ดังนั้นฉันจึงต้องการรายการแบบเลื่อนลงที่สอดคล้องกับSelectedList Actor เอาต์พุตเริ่มต้นคือทั้งหมด/ และถ้าฉันเลือกพารามิเตอร์ภาพยนตร์ที่เฉพาะเจาะจง เช่น ประเภทหรืองบประมาณ มากกว่า DDL ที่มีนักแสดง ควรสอดคล้องกับสิ่งนี้
public class Movie
{
public int MovieID { get; set; }
public string Title { get; set; }
public string Date { get; set; }
public int Budget { get; set; }
public string Genre { get; set; }
public virtual ICollection<Actor> Actors { get; set; }
}
public class Actor
{
public int ID { get; set;}
public string Name { get; set; }
public virtual ICollection<Movie> Movies { get; set; }
}
ฉันตระหนักถึงผลลัพธ์ด้วย
<th>
@Html.DisplayNameFor(model => model.Genre)
</th>........................
<th>.........................
@Html.DisplayNameFor(model => model.Actors)
</th>...............
ด้วยคอลเลกชัน Actors
ฉันต้องการแบบฟอร์มอื่นสำหรับเอาต์พุตทุกแถว เพราะหนังทุกเรื่องสามารถมีนักแสดงได้หลายคน หากนักแสดงมีคอลัมน์จำนวนมาก ฉันจะซ่อนได้อย่างไร หรือส่งออกปริมาณที่มีความสามารถในการขยายออกบ้าง? ฉันเลือกที่จะเพิ่มลงใน DropDownList บางทีรูปแบบ AJAX ใหม่หรือองค์ประกอบ asp.net อาจเป็นทางเลือกที่ดี
ดังนั้นฉันจึงมี MovieController:
if (!String.IsNullOrEmpty(SearchActor))
{
Movie = Movie.Where(c => c.Actors.Any(i => i.Name.Contains(SearchActor)));
}
return View(Movie.ToList());
มันส่งคืนภาพยนตร์ ฉันจะดึง Actors.Name
(สตริง) จาก Movie
ที่สอดคล้องกับ Actor ICollection ได้อย่างไร
ฉันจะเพิ่มสตริงนี้ใน DDL