Ссылка на объект требуется для нестатического поля, метода или свойства System.Web.UI.Page.RouteData.get.

Я работаю над приложением asp.net. В этом приложении я использовал метод перезаписи URL для отображения страниц в браузере. Всякий раз, когда кто-либо хочет отредактировать какую-либо запись, я проверял, является ли «ID» для редактирования нулевым или нет, как:

if (Page.RouteData.Values["ID"] != null)
{
}

Если это условие будет истинным, то это означает, что хочет отредактировать запись идентификатора, прошедшего через

Page.RouteData.Values["ID"] 

из формы выводятся все данные. и пользователь выбирает любой из них. Приведенное выше условие «если» работает нормально, когда оно не используется ни в одном веб-методе, но используется в веб-методе, возникает ошибка.

Мой веб-метод

[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod(e)]
public static string SaveData(string Category,string SubCategory,string ProductType)
    {
        try
        {
            ProductBrand objBrand = new ProductBrand();

            DataTable dt = new DataTable();
            ProductType objProductType = new ProductType();
            objProductType.SubCategoryID = Convert.ToInt64(SubCategory);
            objProductType.ProductTypeName = ProductType;

            if (Page.RouteData.Values["ID"] != null)
            {
                objProductType.TypeID = Convert.ToInt64(Page.RouteData.Values["ID"].ToString());
                objProductType.Flag = "U";
            else
            {
                dt = new ProductType().SelectByCategory(objProductType.SubCategoryID, objProductType.ProductTypeName);
                if (dt.Rows.Count > 0)
                {
                    objProductType.Flag = "D";
                }
                else
                {
                    objProductType.Flag = "I";
                }
            }

            if (objProductType.Flag.Equals("D"))
            {
                objBrand.BrandID = 2;
            }
            else
            {

                int retval = new ProductType().Insert(objProductType);
                if (retval > 0)
                {
                    objBrand.BrandID = 1;
                }
                else
                {
                    objBrand.BrandID = 0;
                }
            }

            return objBrand.BrandID.ToString();
        }
        catch (Exception ex)
        {
            throw (ex);
        }
    }

Вышеупомянутый веб-метод был написан для вставки данных в базу данных с использованием jquery. В приведенном выше веб-методе в операторе «if (Page.RouteData.Values ​​[«ID»]! = null)» ошибка отображается как

An object reference is required for the non-static field, method, or property 'System.Web.UI.Page.RouteData.get'

Но когда я использую вышеуказанное условие вне веб-метода, этой ошибки не возникает. Пожалуйста, помогите мне кто-нибудь здесь.


person Sunny Sandeep    schedule 29.09.2015    source источник


Ответы (1)


попробуйте удалить «статический» в функции SaveData и вызвать как экземпляр

var xx = new YOURCLASS();
xx.SaveData(xx,yy,zz);

Как мне позвонить нестатический метод из статического метода в C#?

person Pavel Kučera    schedule 29.09.2015
comment
я не могу этого сделать, потому что SaveData - это WebMethod, который использовался здесь для вставки данных с помощью jquery - person Sunny Sandeep; 29.09.2015