[英]How to call non static method from web method
在我的代碼中,以前我在單擊按鈕時保存數據,這里hdnDisplayOrderSaveData
是 ASP 隱藏文件
protected void btnSaveDisplayOrder_Click(object sender, EventArgs e)
string data = hdnDisplayOrderSaveData.Value;
Service service = new Service();
if (IsSaveStringValid(data))
{
bool result = service.SaveServicesDisplayOrder(data);
if (result)
{
ClientScript.RegisterStartupScript(typeof(Page), "script", "showMessage(1);", true);
}
else
{
ClientScript.RegisterStartupScript(typeof(Page), "script", "showMessage(2);", true);
}
}
LoadDisplayOrder();
}
然后我需要將上面的功能移動到 web 方法,所以我的代碼如下,
public partial class ProductAdminSortOrder : BasePage
{
private List<int> serviceIds = new List<int>();
protected void Page_Load(object sender, EventArgs e)
{
try
{
CheckSession();
CheckPagePermissions(Permissions.ServicesAdministrator);
LoadDisplayOrder();
}
catch (Exception ex)
{
Logger.LogErrorEvent(ex);
throw;
}
}
/// <summary>
/// Loads the display order.
/// </summary>
private void LoadDisplayOrder()
{
}
[WebMethod]
public static void SaveOrder()
{
string data = hdnDisplayOrderSaveData.Value;
Service service = new Service();
if (IsSaveStringValid(data))
{
bool result = service.SaveServicesDisplayOrder(data);
if (result)
{
ClientScript.RegisterStartupScript(typeof(Page), "script", "showMessage(1);", true);
}
else
{
ClientScript.RegisterStartupScript(typeof(Page), "script", "showMessage(2);", true);
}
}
LoadDisplayOrder();
}
//protected void btnSaveDisplayOrder_Click(object sender, EventArgs e)
//}
private bool IsSaveStringValid(string data)
{
data = Regex.Replace(data, @"\s+", "");
string[] items = data.Split('#');
if (!IsDataValid(item))
{
return false;
}
}
private bool IsDataValid(string[] item)
{
if (item.Length != 2)
{
return false;
}
else
{
return serviceIds.Any(id => id == Convert.ToInt32(item[0], CultureInfo.InvariantCulture));
}
}
}
之后,我收到以下錯誤,
An object reference is required for the non-static field, method, or property 'ServicesAdminSortOrder.hdnDisplayOrderSaveData'
An object reference is required for the non-static field, method, or property 'ServicesAdminSortOrder.LoadDisplayOrder()'
An object reference is required for the non-static field, method, or property 'Page.ClientScript'
static
更新:
我如何調用 web 方法,
function DeleteKartItems() {
$.ajax({
type: "POST",
url: 'ProductAdminSortOrder.aspx/SaveOrder',
data: "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
console.log('success');
},
error: function (e) {
console.log('failed');
}
});
}
您需要使用 ajax 或 ASP 更新面板將先前存儲在隱藏字段中的數據作為請求的一部分發送到 WebMethod。 一個例子: https://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.