我指定了一个使用[FromBody]读取请求体的端点,但是,当其中一个字段包含&符号(&)时,该值始终为null。有问题的客户端正在将XML传递给端点。
public IHttpActionResult CreateStage([FromBody] JobStageWrapper stage)
JobStageWrapper对象
public class JobStageWrapper
{
public JobStage job { get; set; }
}
舞台对象
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>
返回填充的对象
有没有办法拦截请求体来替换这些特殊字符,以便始终完全填充对象?
谢谢!
亚当
答案 0 :(得分:1)
...其中一个字段包含&符号(&amp;)。有问题的客户端正在将XML传递给端点。
客户端应确保转义xml。 &符号应以&
这不是有效的xml元素
<memo>My name is Adam & I live in England</memo>
但这是
<memo>My name is Adam & I live in England</memo>
请参阅List of XML and HTML character entity references - &gt; Predefined entities in XML
部分,列出了需要转义的XML特殊字符列表。
或者这是从上一个答案复制到SO What characters do I need to escape in XML documents?的列表。
" "
' '
< <
> >
& &