C# 将带有Json正文的请求发布到MVC resful服务

C# 将带有Json正文的请求发布到MVC resful服务,c#,asp.net-mvc,json,wcf,rest,C#,Asp.net Mvc,Json,Wcf,Rest,正在尝试构造对wcf restful服务的有效请求。但是整整一个小时都做不到,我不明白为什么它不起作用。其他返回JSON的API工作正常,我对它们进行了测试。现在需要修复请求API。 我把断点放在AddDine方法的实现上,但她并没有触发。我认为我的请求或属性有问题 //Add Meal [OperationContract] [WebInvoke(UriTemplate = "AddMeal", RequestFormat = WebMessageFo

正在尝试构造对wcf restful服务的有效请求。但是整整一个小时都做不到,我不明白为什么它不起作用。其他返回JSON的API工作正常,我对它们进行了测试。现在需要修复请求API。

我把断点放在AddDine方法的实现上,但她并没有触发。我认为我的请求或属性有问题

    //Add Meal
    [OperationContract]
    [WebInvoke(UriTemplate = "AddMeal",
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json, Method = "POST")]
    bool AddMeal(string meal);

您的WCF方法需要一个
字符串
,但是,模型绑定器将尝试将您的JSON绑定到一个不起作用的字符串。当使用MVC时,您应该使用模型,创建一个表示JSON数据的模型,例如

public class Meal
{
    public DateTime EatedTime { get; set; }
    public decimal Amount { get; set; }
    public int PatientID { get; set; }
    public int MealTypeID { get; set; }
    ...
}
然后更新您的签名以期望该模型

bool AddMeal(Meal meal)

您应该会发现数据绑定到了
套餐
模型。

您会得到什么错误?附加调试器以查找,或打开“应用程序”事件日志。谢谢!这很有帮助!我决定使用NotMapped属性将字符串转换为模型的日期时间。还有一个问题,是否需要将[DataContract]和[DataMember]应用于我的模型?我看到它起作用了anyway@Ark否默认模型绑定器应处理反序列化。但是,由于它是WCF,如果您要返回一个模型,例如,
fine getfine(…)
,那么您可能需要这样做。我的意思是,我希望使用相同的模型通过EF与数据库交互,并将此模型用于WCF服务:绑定、验证、,etc@Ark同样,就像我说的,只有当你打算从WCF返回那个模型时。这些属性由
DataContractSerializer
使用,并将用于序列化要通过网络发送的模型。您知道如何使用null键确定MealType并强制WCF将其成功绑定到我的模型吗