我已经创建了一个Azure功能,并且我在本地运行它:
JsonSerializationException: Error getting value from 'ReadTimeout' on 'System.IO.FileStream'.
请注意,[FunctionName("HttpTriggerCSharpSet")]
public static async Task<HttpResponseMessage> Set([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] MyDocument req, TraceWriter log)
{
// ...
}
是第一个参数,而不是MyDocument
。我在文档中读到了这种方法应该有效,并且它似乎与ASP.NET模型绑定非常相似(无论如何,在我看来)。 HttpRequestMessage
是一个只有3个属性的POCO。
MyDocument
当我像这样发布函数时(我使用Postman):
我收到一条错误消息:public class MyDocument
{
public string Name { get; set; }
public int ShoeSize { get; set; }
public decimal Balance { get; set; }
}
(您也可以在上面邮递员的屏幕截图中看到)
我已经尝试过form-data和x-www-form-urlencoded甚至是Postman的原始版本,每次都是同样的错误。我还尝试切换回[8/8/2017 2:21:07 PM] Exception while executing function: Functions.HttpTriggerCSharpSet. Microsoft.Azure.WebJobs.Host: Exception binding parameter 'req'. System.Net.Http.Formatting: No MediaTypeFormatter is available to read an object of type 'MyDocument' from content
并使用HttpRequestMessage
,我收到了类似的错误。我是否错误地构建了POST,或者我是否错误地编写了Azure函数。在任何一种情况下,什么是正确的方法?
答案 0 :(得分:5)
确保指定标题:
{
"Name": "myUserName",
"Balance": 123.0,
"ShoeSize": 30
}
然后以下正文应该适用于您的代码:
<tr>
<td class="fixnumber">5</td>
<td class="total"></td>
<td>
<div class="form-group">
<select name="quantity[]" class="form-control quantity">
<option value="none">select an option</option>
<option value="2">2</option>
</select>
</div>
</td>
</tr>
var select = $(".quantity");
select.on("change", function () {
$(this).change(function(key, value){
$(this).closest(".total").text(parseInt($(this).closest(".fixnumber").text())*parseInt($(this).val()))
})
});