Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';t在其代码隐藏中访问基本页的主体标记_C#_Html_Asp.net - Fatal编程技术网

C# Can';t在其代码隐藏中访问基本页的主体标记

C# Can';t在其代码隐藏中访问基本页的主体标记,c#,html,asp.net,C#,Html,Asp.net,我正在尝试向站点中的所有页面添加Javascript。因此,我创建了一个基本页面,站点上的大多数页面都是使用从该页面继承的。您使用了错误的工具将JavaScript添加到站点中的所有页面。相反,你应该使用。正如你所看到的,我基本上是在尝试从客户端调用PageMethod,母版页和用户控件与PageMethods不匹配…这就是为什么我使用这种方法的原因。你不应该首先使用PageMethods,或者web方法。微软不再支持他们,并且大力支持他们。但一个简单的解决方法是将您的逻辑移动到ASMX中的we

我正在尝试向站点中的所有页面添加Javascript。因此,我创建了一个基本页面,站点上的大多数页面都是使用
从该页面继承的。您使用了错误的工具将JavaScript添加到站点中的所有页面。相反,你应该使用。正如你所看到的,我基本上是在尝试从客户端调用PageMethod,母版页和用户控件与PageMethods不匹配…这就是为什么我使用这种方法的原因。你不应该首先使用PageMethods,或者web方法。微软不再支持他们,并且大力支持他们。但一个简单的解决方法是将您的逻辑移动到ASMX中的web方法中,或者将逻辑放入通用处理程序ASHX.Ohh…如果我必须在web应用程序中从客户端到服务器进行通信,我将使用WebMethods/PageMethods。你能解释一下为什么这不是一个好的做法吗?另外,请提供有关您正在谈论的处理程序的更多详细信息。您可以从Visual Studio的“添加新项”菜单向应用程序添加通用处理程序(.ashx)。它只是一个端点,在这里,您收到一个原始HTTP请求,您可以写入原始HTTP响应。因此,为AJAX调用公开端点是一种非常轻量级的方法。至于web和页面方法,这些方法正在慢慢消亡。约翰·桑德斯(John Saunders)有一篇博客,描述了不使用它的几个原因。他建议改为使用WCF,但从那时起,WebAPI就可以使用了。
<%@ Page Language="C#" CodeBehind="BasePage.aspx.cs" Inherits="MyProj.BasePage" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

    <title></title>
</head>
<body  ID="BasePage_Body" runat="server">
    <form id="form1" runat="server">
    <div>

    </div>
    </form>
</body>
</html>
   protected override void OnInit(EventArgs e)
            {
               base.OnInit(e);
    //Adding this Client Side script for my Page
                if (<someCondition>)
                {
                    BasePage_Body.Attributes.Add("onunload", "HandleClose()");
                    Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "MWGBrowserhandlingClose",
                        "<script language=\"JavaScript\">" +
                        "function HandleClose() {" +
                              "alert(\"Killing the session on the server!!\");" +
                              "PageMethods.AbandonSession();" +
                                "} </script>");
                }
}