いくつかの異なるモデルで使用できるようにしたい部分ビューがあります。オブジェクトが親として渡されたときに、オブジェクトの Child クラスが何であるかを調べる方法はありますか?
例えば:
モデル:
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"});
}
}
}
犬のページの親ビュー:
@model Test.Models.Dog
@Html.Action("MakeAnimalSound", "AnimalAction", new { Model })
今、私がこの例のようなことをするとしたら、コントローラーの if ステートメントは動物を動物としてしか認識せず、本来の犬や猫として認識しません。
誰でもこれを行う方法を知っていますか? シンプルでいい気がします。