我想從我的ASP.net代碼後面調用我的Web API Web服務。從ASP.net調用Web API 2服務WebMethod代碼隱藏
使用的WebMethod功能:
[WebMethod]
public static string checkQuery(string sql)
{
string encryptingIT = new AES().Encrypt(sql);
string result = q(encryptingIT);
return result;
}
public async Task<string> q(string encryptingIT)
{
var client = new HttpClient();
var content = new StringContent(JsonConvert.SerializeObject(new Product { query = encryptingIT, empImg = false }));
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = await client.PostAsync("http://dev-zzzz/newWS/theQ", content);
var value = await response.Content.ReadAsStringAsync();
return value;
}
然而,我對線的錯誤:
Q(encryptingIT);
其中指出:
錯誤16的對象引用是所必需的非靜態字段,方法或屬性 'WebApi.App._default.q(字符串)'
我試着把HttpClient放到同一個checkQuery函數中,但似乎我不允許從asp按鈕單擊時調用該函數。
我已經使用了Web服務大多使用jQuery的Ajax這樣的:
$.support.cors = true;
$.ajax({
type: "POST",
crossDomain: true,
url: "http://dev-zzzz/newWS/theQ",
beforeSend: function (xhrObj) {
xhrObj.setRequestHeader("Content-Type", "application/json");
},
data: JSON.stringify({
theID: "2135648792",
empImg: "false"
}),
dataType: "json",
success: function (msg) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
}
});
這工作得很好。
我能做些什麼來模仿AJAX在我身後的WebMethod功能代碼?
的錯誤是很清楚的,你不能說從靜態的實例功能沒有提及的一個實例類,只是設置第二個是靜態的也很好,如果你必須保持該函數是實例,然後將代碼移動到一個靜態函數,並從實例中調用它 – Gusman