2016-11-22 57 views
1

我有一个指定的端点使用[FromBody]读取请求正文,但是当其中一个字段包含与符号(&)时,该值始终为空。有问题的客户端正在将XML传递给端点。Web Api 2 - 当变量包含与号时,FromBody对象始终为空

public IHttpActionResult CreateStage([FromBody] JobStageWrapper stage) 

的JobStageWrapper对象

public class JobStageWrapper 
{ 
    public JobStage job { get; set; } 
} 

的Stage对象

public class JobStage 
    { 
     public string jobno { get; set; } 
     // Job Stage 
     public string jobStage { get; set; } 
     // Stage Date 
     public DateTime StageDate { get; set; } 
     public string Memo { get; set; } 
    } 

因此,举例来说:

<memo>My name is Adam & I live in England</memo> 

,返回null

<memo>My name is Adam and I live in England</memo> 

返回一个人口稠密的对象

有没有一种方法,我可以拦截请求机构,以取代这些特殊字符,这样的对象总是完全填充?

谢谢!
亚当

回答

1

...中的一个字段包含一个符号(&)。有问题的客户端正在将XML传递给端点。

客户端应该确保xml被转义。符号应&amp;

这不是一个有效的XML元素

<memo>My name is Adam & I live in England</memo> 

传递但这

<memo>My name is Adam &amp; I live in England</memo> 

List of XML and HTML character entity references - >Predefined entities in XML节的特殊字符在名单需要转义的XML。

或者这里是从SO What characters do I need to escape in XML documents?的上一个答案复制的列表。

" &quot; 
' &apos; 
< &lt; 
> &gt; 
& &amp; 
+0

谢谢 - 非常丰富的回应,链接到真正有用的信息。现在一切都已经与客户解决了。 –