我正在使用angularjs开发离子1中的跨平台应用程序,我无法在asp.net Web服务中传递字符串列表。 angularjs代码:
var request = {
params:[]
};
request.params.push(jsonObjectA);
request.params.push({"someString" : "ABCDEF"});
$http({
method: 'POST',
url: targetUri,
data: request
})
这是我的网络服务,它采用了List参数
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string SearchBasedResult(List<string> Id, List<string> type, string storeid)
{
//some code
}
答案 0 :(得分:0)
不要将Lists用作参数类型,而是将复杂对象创建为包含所需列表的单个参数。例如;
public class MyParamterObject
{
public List<string> Ids { get; set; }
public List<string> Types { get; set; }
public string StoreId { get; set; }
}
使用新对象作为参数重新编写控制器:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string SearchBasedResult(MyParamterObject param)
{
//some code
}
在angular内部创建一个新对象并填充它,按照MyParameterObject中的描述命名属性。
修改强>
角度呼叫变为:
var paramObject = {};
paramObject.Ids = idsList;
paramObject.Types = typesList;
paramObject.StoreId = "storeId";
var req = {
method: 'POST',
url: targetUri,
data: paramObject
};
$http(req);
答案 1 :(得分:0)
您应该list
发送array string
作为:
api
这是var Ids = ["id1", "id2"]
,或List<string> Ids
:
types
您必须将主题放在对象中并将其发送到var types = ["type1", "type2"]
:
API