我正在尝试测试对我的一个函数的调用。
这是从我的网站外部调用的,就像Web服务一样。
测试我试图通过我的网址传递参数。
http://localhost:0000/APIService/UploadValuationDetails?ValuationDetails=[ {property_details_address_address1 {TagValue:'测试'},{ImageBase64:''}}?]编号= 4785
我服务中的代码:
public void UploadValuationDetails(Dictionary<string, ValuationDetails> JsonResult, int Id)
{
DatabaseHelper DBH = new DatabaseHelper();
foreach (var item in JsonResult)
{ //(ValuationId , TagName , TagValue , ImageBase64)
DBH.WSValuationDetailUpdate(Id, item.Key, item.Value.TagValue, item.Value.ImageBase64);
}
}
ValuationDetails类:
public class ValuationDetails
{
public string TagValue { get; set; }
public string ImageBase64 { get; set; }
}
编辑已更改?对于&amp;的第二个参数:
> http://localhost:0000/APIService/UploadValuationDetails?ValuationDetails={'property_details_address_address1':[{TagValue:'Test',ImageBase64:''}]}&Id=4785
将我的网址更改为上面的网址后,点击了一个断点但值不正确。
编辑2尝试在json结果中获取正确的值。
我想我离我更近了:
http://localhost:0000/APIService/UploadValuationDetails?JsonResult={TagName:"property_details_address_address1",ValuationDetails:{TagValue:"Test","ImageBase64:""}}]&Id=4785
但现在我的jsonResult = 0
答案 0 :(得分:1)
您应该使用&符号(&
)来分隔多个查询字符串参数。如你所知,你正在使用?
,所以&#34;?Id = 4785&#34;被解释为ValuationDetails
参数值的一部分。
修正:
this is correct ┐
↓
http://localhost:0000/APIService/UploadValuationDetails?ValuationDetails=
[{property_details_address_address1{TagValue:'Test'},{ImageBase64:''}}]&Id=4785
↑
but this should be fixed ┘
答案 1 :(得分:1)
我认为编码JSON也更好。 从那时起你将拥有数据的那一刻?或者&amp;你也会得到一个例外。
答案 2 :(得分:0)
您的网址字符串看起来格式不正确。
对于URL的分隔符和您将使用的参数?
。
但要使用&
的http://本地主机:0000 / APIService / UploadValuationDetails ValuationDetails = [{property_details_address_address1 {TagValue: '测试'},{ImageBase64: ''}}]和ID = 4785
您的JSON无效。
我已经使用了一点,但它仍然需要你的输入。
[
{
"property_details_address_address1": {
"TagValue": "Test"
},
"needs_a_name_here": {
"ImageBase64": ""
}
}
]
请注意,我在名字旁边加了引号。而你的第二个对象也需要一个名字。
我使用JSONLint验证并创建了正确的json