我写了一个基类和一些派生自它的类。
我想在一个 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(多次重复很多相同的代码),所以我想把所有这些都放在一个 ActionResult 中。有什么想法可以实现吗?