基本クラスと、そこから派生するいくつかのクラスを作成しました。
これらのクラスを 1 つの ActionResult で使用したいのですが、PSBase を PS1 にキャストしようとすると、PSBase を PS1 に変換できないという System.InvalidCastException が発生します。
クラス:
public class PSBase
{
public int stationId { get; set; }
public string name { get; set; }
}
public class PS1 : PSBase
{
public string reference { get; set; }
}
public class PS2 : PSBase
{
}
アクション結果:
[HttpPost]
public ActionResult ProductionStep(PSBase ps)
{
if (ModelState.IsValid)
{
var product = db.Product.FirstOrDefault(.........);
switch (ps.stationId )
{
case 1:
{
product.Reference = ((PS1)ps).reference;
db.SaveChanges();
break;
}
}
}
return View();
}
各クラスに独自の ActionResult を持たせたくないので (同じコードを何度も繰り返します)、これらすべてを 1 つの ActionResult にまとめたかったのです。これを実装する方法はありますか?