Json 从';获取值时出错;替换回退';
当我尝试执行PUT-through webapi时,出现以下错误。我错过了什么?为什么我会得到这个例外Json 从';获取值时出错;替换回退';,json,asp.net-mvc-4,asp.net-web-api,json.net,Json,Asp.net Mvc 4,Asp.net Web Api,Json.net,当我尝试执行PUT-through webapi时,出现以下错误。我错过了什么?为什么我会得到这个例外 Inner Exception : {"Error getting value from 'replacementFallback' on 'System.Text.EncoderReplacementFallback'."} Message : Error getting value from 'replacementFallback' Source
Inner Exception : {"Error getting value from 'replacementFallback' on 'System.Text.EncoderReplacementFallback'."}
Message : Error getting value from 'replacementFallback'
Source : Newtonsoft.Json
Stack Trace : at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter writer, Object value, JsonContainerContract contract, JsonProperty member, JsonProperty property, JsonContract& memberContract, Object& memberValue)
at System.Net.Http.Formatting.JsonMediaTypeFormatter.WriteToStreamAsync(Type type, Object value, Stream writeStream, HttpContent content, TransportContext transportContext)
从C调用WebAPI的代码#
EmailReportVM.cS
public class EmailReportVM
{
#region Constructors and Methods
public EmailReportVM ()
{
PhotoUrl = ConfigurationManager.AppSettings["PhotoUrl"];
}
#endregion
#region Properties and Fields
private string _from;
private string _to;
public string ReportName { get; set; }
public string ReportUrl { get; set; }
public string From
{
get
{
// remove the last comma
if ((!string.IsNullOrEmpty(_from)) && (_from.Length > 1))
{
if (_from.Trim().Substring(_from.Length - 1, 1).Equals(","))
_from = _from.Trim().Substring(0, _from.Length - 1);
}
return _from;
}
set {
_from = value;
}
}
public string To {
get {
// remove the last comma
if ((!string.IsNullOrEmpty(_to)) && (_to.Length > 1))
{
_to = _to.Replace("\n", String.Empty);
if (_to.Trim().Substring(_to.Length - 1, 1).Equals(","))
_to = _to.Trim().Substring(0, _to.Length - 1);
}
return _to;
}
set {
_to = value;
}
}
public string Message { get; set; }
public long StatsEmailedId { get; set; }
public bool CopyMeBox { get; set; }
public string AgentId { get; set; }
public string AgentEmail { get; set; }
public string AgentPhone { get; set; }
public string AgentFax { get; set; }
private string _agentWebsite;
public string AgentWebsite
{
get {
if ((_agentWebsite != null)&& (_agentWebsite.Length > 0) && (!_agentWebsite.Equals("http://")))
{
return _agentWebsite;
}
else
{
return null;
}
}
set { _agentWebsite = value; }
}
public bool HasAgentPhoto { get; set; }
public string AgentName { get; set; }
public string AgentPhotoUrl {
get {
if (this.HasAgentPhoto)
{
return PhotoUrl + this.AgentId + ".jpg";
}
else {
return null;
}
}
}
public string PhotoUrl { get; set; }
public string ReportTitle { get; set; }
public MailMessage mailMessage { get; set; }
#endregion
}
WebAPI中的操作
[System.Web.Http.HttpPut]
public object InsertMailSendQueue([FromBody] EmailReportApiVM mailMessage)
{
var confirmation = EmailService.InsertMailSendQueue(mailMessage.AgentId, null, mailMessage.mailMessage, mailMessage.CopyMeBox);
return confirmation;
}
[System.Web.Http.HttpPut]
public object InsertMailSendQueue([FromBody] EmailReportApiVM mailMessage)
{
var confirmation = EmailService.InsertMailSendQueue(mailMessage.AgentId, null, mailMessage.mailMessage, mailMessage.CopyMeBox);
return confirmation;
}