У меня есть база данных, настроенная с использованием таблицы EF для каждого типа, и я пытаюсь написать подробное представление в Razor для страницы сведений. Сложность в том, что у меня есть базовый класс Product
и два производных класса VideoProduct
и DatabaseProduct
, и я хочу отобразить их все в виде списка и иметь возможность предоставить подробный вид для каждого типа. У меня возникли проблемы с выяснением того, как определить, какой View возвращать в зависимости от типа объекта, который возвращается из базы данных. Вот часть кода:
МОДЕЛИ:
public abstract class Product
{
// some properties
}
public class DatabaseProduct
{
int SpecialInvoiceID { get; set; }
}
public class VideoProduct
{
public virtual ICollection<FilmsCollection> FilmsCollectionIDs { get; set; }
public virtual ICollection<OtherCollection> OtherCollectionIDs { get; set; }
}
CONTROLLER:
public ActionResult Details(int id)
{
var product = db.Products.Find(id); // could be a VideoProduct or a DatabaseProduct
if (product == null)
return RedirectToAction("Index");
return View("Details", product);
}
ВИД:
Что мне делать здесь, чтобы в подробном представлении отображался любой тип модели? Или что я могу сделать в контроллере для вызова разных представлений для отображения для разных классов моделей? Или я могу использовать DisplayForModel?
Я пытался найти пример этого через Google, но я не смог получить какую-либо полезную информацию. Любое руководство будет с благодарностью. Спасибо!