我有一个局部视图,我希望它能够与几个不同的模型一起使用。有什么方法可以找出作为父对象传入的对象的子类是什么?
例如:
模型:
public class Animal { }
public class Dog : Animal { }
public class Cat : Animal { }
控制器:
public class AnimalActionController : Controller
{
public ActionResult MakeAnimalSound(Animal animal)
{
if (animal is Dog)
{
return PartialView("~/Views/_AnimalActionView.cshtml", new{sound="Woof"});
}
if (animal is Cat)
{
return PartialView("~/Views/_AnimalActionView.cshtml", new{sound="Meow"});
}
}
}
Dog 页面的父视图:
@model Test.Models.Dog
@Html.Action("MakeAnimalSound", "AnimalAction", new { Model })
现在,如果我要执行类似此示例的操作,Controller 中的 if 语句只会将 animal 视为 Animal 而不是 Dog 或 Cat 原来的样子。
有人知道怎么做吗?我觉得应该很简单。