[英]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.