我不想使用更新面板,并且使用常见的WebMethod方法会导致我使用此代码出现此错误
private string currentHtml() {
StringWriter str_wrt = new StringWriter();
HtmlTextWriter html_wrt = new HtmlTextWriter(str_wrt);
Page.RenderControl(html_wrt);
return str_wrt.ToString();
}
[WebMethod]
public static void EmailPtoRequest() {
string test = currentHtml();
}
错误8非静态字段,方法或属性需要对象引用' PtoRequest.cs.WebForm1.currentHtml()
显然,这种方法是静态的,会引起很多麻烦。
我可以使用这种功能的标准吗?目标是允许用户将其数据发送到服务器,而不会导致发布和刷新页面。
注意:我不想使用webmethod,因为它导致了一个不允许我编译的错误。
public partial class WebForm1 : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
}
private string currentHtml() {
StringWriter str_wrt = new StringWriter();
HtmlTextWriter html_wrt = new HtmlTextWriter(str_wrt);
Page.RenderControl(html_wrt);
return str_wrt.ToString();
}
[WebMethod]
public static void EmailPtoRequest() {
WebForm1 WebForm1 = new WebForm1();
string test = WebForm1.currentHtml();
}
}
测试结果'是一个空字符串而不是页面的html。
private static string currentHtml() {
StringWriter str_wrt = new StringWriter();
HtmlTextWriter html_wrt = new HtmlTextWriter(str_wrt);
Page.RenderControl(html_wrt);
return str_wrt.ToString();
}
[WebMethod]
public static void EmailPtoRequest() {
string test = currentHtml();
}
}
再次导致第一个错误,但改为使用currentHtml方法。
请记住问题不是关于错误,而是webmethod或更新面板的替代方案。谢谢。
答案 0 :(得分:1)
3个选项:
将currentHtml方法设为静态,
实例化包含currentHtml的类,如下所示:
new MyClass()。currentHtml();
使用启用了ajax的wcf服务。