2016-11-22 2 views
1

Ich habe einen Endpunkt angegeben, der den Anfragetext mit [FromBody] liest, aber der Wert ist immer null, wenn eines der Felder ein kaufmännisches Und (&) enthält. Der fragliche Client übergibt XML an den Endpunkt.Web Api 2 - FromBody -Objekt ist immer Null, wenn eine Variable ein Und enthält

public IHttpActionResult CreateStage([FromBody] JobStageWrapper stage) 

Das JobStageWrapper Objekt

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

Das Stage-Objekt

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; } 
    } 

zum Beispiel also:

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

Returns null

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

Gibt ein besiedeltes Objekt

Gibt es eine Weise, die ich den Antrag Körper abfangen kann diese Sonderzeichen zu ersetzen, so dass das Objekt immer bevölkert ist voll?

Danke!
Adam

Antwort

1

... eine der Felder enthält ein Und-Zeichen (&). Der fragliche Client übergibt XML an den Endpunkt.

Der Client sollte sicherstellen, dass der XML-Code Escape ist. Eine Liste der Sonderzeichen>Predefined entities in XML Abschnitt in - Ampersand sollte

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

aber dies ist kein gültiges XML-Element

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

Siehe List of XML and HTML character entity references Dies ist als &amp;

weitergegeben XML, das maskiert werden muss.

Oder hier ist die Liste von dieser vorherigen Antwort auf SO What characters do I need to escape in XML documents? kopiert.

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

Vielen Dank - sehr informative Antwort mit Links zu wirklich nützlichen Informationen. Alles ist jetzt mit dem Kunden gelöst. –

Verwandte Themen