В моем коде раньше я сохранял данные при нажатии кнопки, здесь 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();
}
Затем мне нужно переместить вышеуказанные функции в веб-метод, поэтому мой код как следует,
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
- Как я могу избежать этих ошибок?
Обновлено:
как я вызываю веб-метод,
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');
}
});
}