try to send data to my database by web service an get this error:
Primitive values of type 'Edm.Decimal' and 'Edm.Int64' must be quoted in the payload. Make sure the value is quoted
here is my code:
var newEntry = {
datum: entryDate,
monat: parseFloat(entryMonth),
taetigkeit: document.getElementById("addWork").value,
total: parseFloat(document.getElementById("addTotal").value),
totalV: parseFloat(document.getElementById("addTotalV").value),
in_auswertung: 0,
teil_projekt_id: parseFloat(document.getElementById("addSubProject").value),
projekt_id: parseFloat(document.getElementById("addProject").value),
TimeStamp: entryDate,
sAuftraggeber: document.getElementById("addContractor").value,
iidBenutzer: parseFloat(298),//sessionStorage.getItem("userId"),
akt_id: parseFloat(document.getElementById("addActivity").value)
};
WinJS.xhr({
type: "post",
url: requestUrl,
data: JSON.stringify(newEntry),
headers: {
"Content-type": "application/json"
}
}).then(
function complete(response) {
},
Thanks Marlowe
At least one of your properties has a declared type of
Edm.Decimal
orEdm.Int64
. These values must be serialized as a string (i.e., the number wrapped in"
characters) in OData's JSON format. If you're not sure what the declared types of the properties are, you can look up the entity type in the server's$metadata
document (typically available athttp://.../MyService.svc/$metadata
).So, for the property or properties that are
Edm.Int64
orEdm.Decimal
, you could remove the call toparseFloat()
and just keep it as a string.