【发布时间】:2014-07-29 16:31:55
【问题描述】:
我正在尝试使用 MVC4 WebApi 来构建 rest/json 服务。
在我的控制器中,我有方法:
public HttpResponseMessage Post(dynamic message)
这包含一个对象,它总是有两个字段,类型和操作。
操作是创建或取消。
我写了三个类,Message、CreateMessage和CancelMessage,Message是另外两个继承的基类。
在阅读了dynamic 上的简介后,我想我可以做到这一点:
public void ProcessMessage(dynamic message)
{
switch ((string)message.action)
{
case "CREATE":
ProcessCreateMessage(message);
break;
case "CANCEL":
ProcessCancelMessage(message);
break;
}
}
private void ProcessCancelMessage(CancelMessage message)
{
//Cancell
}
private void ProcessCreateMessage(CreateMessage message)
{
//Create
}
但我只是收到一条关于没有重载(隐式强制转换)或“无法将类型 'Newtonsoft.Json.Linq.JObject' 转换为 'CancelMessage'”的消息
类
public class Message
{
public string type { get; set; }
public string action { get; set; }
}
public class CancelMessage : Message
{
public string ref { get; set; }
public string message { get; set; }
}
Json:
{
"type" : "type",
"action" : "cancel",
"ref" : "RefNo",
"message" : "a message"
}
我在这里没有得到什么?
【问题讨论】:
标签: c# asp.net-mvc json asp.net-mvc-4 asp.net-web-api