繁体   English   中英

如何在没有WebMethod或Updatepanel的情况下通过javascript调用服务器端c#方法?

[英]How can I call a server side c# method via javascript without a WebMethod or Updatepanel?

我宁愿不使用更新面板,而使用常见的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()需要对象引用

显然,静态方法会引起很多麻烦。

我可以针对此类功能使用标准吗? 目的是允许用户将其数据发送到服务器,而不会引起发布和刷新页面。

注意:我不想使用网络方法,因为它会导致无法编译的错误。

     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();
     }
 }

结果“ test”是一个空字符串,而不是页面的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方法。

请记住,问题不是关于错误,而是Web方法或更新面板的替代方法。 谢谢。

3种选择:

  1. 将currentHtml方法设为静态,

  2. 实例化包含currentHtml的类,如下所示:

    新的MyClass()。currentHtml();

  3. 使用启用了ajax的wcf服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM