簡體   English   中英

C#錯誤:非靜態字段需要對象引用

[英]C# error : An object reference is required for the non-static field

我已經找到了許多解決方案,但對我來說都沒有意義。 基本上,我正在使用jQuery AJAX提交表單,並嘗試更新表中已有的行,但出現錯誤:非靜態字段需要對象引用。 如果我更改了“ txtContactLastEdit.Text;” 改為“新名稱”; 一切順利。 僅當我引用表單上的txt字段時。 有任何想法嗎? 謝謝!

[WebMethod]
public static string updateProject(int id)
{
    using (dbPSREntities5 myEntities = new dbPSREntities5())
    {
        // Query for a specific customer. 
        var proj =
            (from tbProject in myEntities.tbProjects
             where tbProject.ProjectID == id
             select tbProject).First();

        // Change the name of the contact.
        proj.ProjectContactLastName = txtContactLastEdit.Text;

        // Ask the DataContext to save all the changes.
        myEntities.SaveChanges();

        var myResult = "success";

        return myResult;

    }
}

您不能訪問靜態方法內的頁面控件。

您可能從客戶端調用此方法,所以一種替代方法是從客戶端發送txtContactLastEdit.Text並更改您的函數以接受該參數。

[WebMethod]
public static string updateProject(int id, string textBoxValue)
{
  // your code.
}

嘗試將文本框的值傳遞給static方法

WebMethod]
public static string updateProject(int id, string contactName)
{
    ....

        // Change the name of the contact.
        proj.ProjectContactLastName = contatcName;


}

在靜態方法內部,不能使用在其中定義了靜態方法ID的類的實例變量,而txtContactLastEdit是TextBox類型的Page的實例變量。 因此,假設靜態方法屬於一個名為Project的類,則可以從頁面的某個位置調用它。

int projectID = 1;
Project.updateProject(projectID,txtContactLastEdit.Text);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM