【发布时间】:2016-05-23 21:49:22
【问题描述】:
我有以下模型类:
public class TrackModel
{
public string Field;
public ExampleClass Value;
}
public class ExampleClass
{
public string Type { get; set; }
}
public class TextClass : ExampleClass
{
public string TextField { get; set; }
public string ValueFiled { get; set; }
}
我需要接收带有他的文件的 TextClass 实例。 我尝试执行以下操作:
public class DefaultController : ApiController
{
public string Post(TrackModel model)
{
TextClass textTerm = model.Value as TextClass;
return "something";
}
}
但是“textTerm”每次都是空的。
JSON 请求:
{
"Field":"string",
"Value": {
"Type":"type",
"TextField":"textfield",
"ValueField": "valuefield"
}
}
我正是需要这个类层次结构。我怎样才能正确映射它? 也许是 JsonConverter? C 这个例子中的某人展示了它是如何工作的?或者我可以听到任何解决此问题的方法。
【问题讨论】:
-
这只是 ASP.NET 代码隐藏还是这个 Post 方法是 ASP.NET MVC 控制器的一部分?从您提出问题的方式来看,它并不是很清楚。
-
@MokonaModoki 当然这是我代码的简化部分。但我需要像模型中的这种层次结构一样映射
-
你没有回答这个问题,但我认为这是一个 MVC 应用程序。
-
@MokonaModoki 这是 ASP.NET Web Api 控制器的一部分。
-
你试过调试吗?只是“价值”是空的吗?还是铸造的结果?尝试正确地转换它(不是使用条件转换): (TextClass)(model.Value) 或尝试检查 (model.Value is TextClass) 您可能必须使用组合方法。
标签: c# asp.net asp.net-web-api