投射从 Ajax 返回的对象
本文关键字:对象 返回 Ajax | 更新日期: 2023-09-27 18:33:02
我正在使用 AJAX.NET 和C#ASP.NET
我的士兵类是一种人员类。
[WebMethod, ScriptMethod]
public static Person getPerson(int personId)
{
return (Person)personService.getSoldier(personId);
}
这非常有效。在 Ajax 方面,我可以获取并设置 Soldier 属性。但是,当我发回此对象时,无法将其转换回 Soldier 对象。
[WebMethod, ScriptMethod]
public static Person savePerson(Person person)
{
Soldier soldier = (Soldier)person;
}
此操作失败。它说它不能将对象人转换为士兵。有没有办法解决这个问题,因为我不想为每种类型创建十几种保存方法?您的任何帮助将不胜感激。
"My Soldier class 是 Person 类的一种"
这就是你的问题。由于Person
是基类,因此不能将其强制转换为子类Soldier
。
您需要在 Person
类中编写一个 Convert 函数,该函数将Soldier
作为参数并单独设置属性。
你能做的就是这样。
Soldier soldier = new Soldier(){soldier.Prop1 = Person.CorrespondingProp;//for all the propertiese};
我猜你从Person
类创建了Soldier
类。方法返回类型是作为基类Person
类。 基类将不具有 Child 类的所有属性。但是子类将具有其父类的所有属性。
理想情况下,您要返回一个Soldier
对象,我会使我的方法返回类型为士兵
public static Soldier getPerson(int personId)
{
return personService.getSoldier(personId);
}