C# 从javascript调用csharp方法

C# 从javascript调用csharp方法,c#,javascript,asp.net,C#,Javascript,Asp.net,我正在使用javascript创建一个验证来验证介于1到100之间的页面大小。。 如果errorCtr=0,则在codebenhind中调用GotoPage()。。先谢谢你 <script type="text/javascript" language="javascript"> function validatePageSize() { var pageSize = document.getElementById('MainContent_txtPageSi

我正在使用javascript创建一个验证来验证介于1到100之间的页面大小。。 如果errorCtr=0,则在codebenhind中调用GotoPage()。。先谢谢你

<script type="text/javascript" language="javascript">
    function validatePageSize() {
        var pageSize = document.getElementById('MainContent_txtPageSize').value;
        var errorCtr = 0;
        if (pageSize == "") {
            alert('Records per page should be a valid number');
            errorCtr++;
        }
        if (pageSize < 0 || pageSize > 100) {
            alert('Records per page should be between 1 to 100');
            errorCtr++;
        }
        if (errorCtr == 0) {
            //missing code
        }
    }
</script>

您不能仅通过javascript调用来实现这一点,如果您希望在服务器上运行代码,则需要回发。Javascript代码在客户机上运行(换句话说,在浏览器中)。您的C#代码get在服务器上运行。您应该在客户端javascript代码中复制C#方法所做的操作。

您不能仅通过javascript调用来完成这一点,如果您希望在服务器上运行代码,则需要回发。Javascript代码在客户机上运行(换句话说,在浏览器中)。您的C#代码get在服务器上运行。您应该在客户端javascript代码中复制C#方法所做的工作。

您可以在javascript中调用服务器端函数。但是,如果您试图在该函数中操纵soem服务器端控制,则可能无法实现。但是,如果您试图进行一些计算并从函数中获取返回值,那么您肯定可以实现这一点

示例代码 Java脚本

function callServer() {
alert('<%=LoadInvoiceForJob() %>');
}

您可以在javascript中调用服务器端函数。但是,如果您试图在该函数中操纵soem服务器端控制,则可能无法实现。但是,如果您试图进行一些计算并从函数中获取返回值,那么您肯定可以实现这一点

示例代码 Java脚本

function callServer() {
alert('<%=LoadInvoiceForJob() %>');
}
这样试试看

WebForm2.aspx页面:-

<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server" />
<script type="text/javascript">
    function validatePageSize() {
        var pageSize = document.getElementById('MainContent_txtPageSize').value;
        var errorCtr = 0;
        if (pageSize == "") {
            alert('Records per page should be a valid number');
            errorCtr++;
        }
        if (pageSize < 0 || pageSize > 100) {
            alert('Records per page should be between 1 to 100');
            errorCtr++;
        }
        if (errorCtr == 0) {
            PageMethods.Goto();
        }
    }
</script>
<div>
    <asp:TextBox ID="MainContent_txtPageSize" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="validatePageSize();" />
</div>
</form>
这样试试看

WebForm2.aspx页面:-

<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server" />
<script type="text/javascript">
    function validatePageSize() {
        var pageSize = document.getElementById('MainContent_txtPageSize').value;
        var errorCtr = 0;
        if (pageSize == "") {
            alert('Records per page should be a valid number');
            errorCtr++;
        }
        if (pageSize < 0 || pageSize > 100) {
            alert('Records per page should be between 1 to 100');
            errorCtr++;
        }
        if (errorCtr == 0) {
            PageMethods.Goto();
        }
    }
</script>
<div>
    <asp:TextBox ID="MainContent_txtPageSize" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="validatePageSize();" />
</div>
</form>

您可以使用webMethode&&scriptmethode。 在“代码隐藏”中的以下代码上,我搜索用户名可用性,并在aspx文件上,我从该方法获得结果:
1) 代码隐藏(c#代码):

2) aspx(网页):


函数ShowAvailability(){
window.PageMethods.CheckUserName(document.getElementById(“”.value,OnSuccess);
}
函数OnSuccess(响应){
var mesg=document.getElementById(“”);
mesg.innerHTML=“”;
开关(响应){
案例“真”:
mesg.style.color=“绿色”;
mesg.innerHTML=“ناکا㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶬”;
打破
案例“假”:
mesg.style.color=“#ec6730”;
mesg.innerHTML=“ناکاا㶍㶍㶍㶍㶫ت”;
打破
案例“错误”:
mesg.style.color=“#ec6730”;
mesg.innerHTML=“ن;
打破
}
}
函数睡眠(毫秒){
var startTime=new Date().getTime();//获取当前时间
while(new Date().getTime()
并且,您应该在runnat server attr的表单中使用具有以下结构的脚本管理器:

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" EnablePartialRendering="true"></asp:ScriptManager>

您可以使用webMethode和脚本methode。 在“代码隐藏”中的以下代码上,我搜索用户名可用性,并在aspx文件上,我从该方法获得结果:
1) 代码隐藏(c#代码):

2) aspx(网页):


函数ShowAvailability(){
window.PageMethods.CheckUserName(document.getElementById(“”.value,OnSuccess);
}
函数OnSuccess(响应){
var mesg=document.getElementById(“”);
mesg.innerHTML=“”;
开关(响应){
案例“真”:
mesg.style.color=“绿色”;
mesg.innerHTML=“ناکا㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶈㶬”;
打破
案例“假”:
mesg.style.color=“#ec6730”;
mesg.innerHTML=“ناکاا㶍㶍㶍㶍㶫ت”;
打破
案例“错误”:
mesg.style.color=“#ec6730”;
mesg.innerHTML=“ن;
打破
}
}
函数睡眠(毫秒){
var startTime=new Date().getTime();//获取当前时间
while(new Date().getTime()
并且,您应该在runnat server attr的表单中使用具有以下结构的脚本管理器:

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" EnablePartialRendering="true"></asp:ScriptManager>


“谢谢你的回答比尔。”DekIAT,如果比尔的回答帮助你,考虑把它标记为接受。谢谢你的回答比尔。“DekIAT,如果比尔的回答帮助你,考虑把它标记为接受。
 <script type="text/javascript">
    function ShowAvailability() {
        window.PageMethods.CheckUserName(document.getElementById("<%=txtUserName.ClientID%>").value, OnSuccess);
    }
    function OnSuccess(response) {
        var mesg = document.getElementById("<%=lblUsername.ClientID%>");
        mesg.innerHTML = "";
        switch (response) {
            case "true":
                mesg.style.color = "green";
                mesg.innerHTML = "نام کاربری قابل استفاده می باشد";
                break;
            case "false":
                mesg.style.color = "#ec6730";
                mesg.innerHTML = "نام کاربری استفاده شده است ";
                break;
            case "error":
                mesg.style.color = "#ec6730";
                mesg.innerHTML = "نام کاربری صحیح نمی باشد";
                break;
        }
    }
    function sleep(milliSeconds) {
        var startTime = new Date().getTime(); // get the current time
        while (new Date().getTime() < startTime + milliSeconds); // hog cpu

    }
    function OnChange(txt) {
        //sleep(100);
        document.getElementById("mesg").innerHTML = "";
    }
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" EnablePartialRendering="true"></asp:ScriptManager>