从javascript调用C#代码

Calling C# code from javascript

本文关键字:代码 调用 javascript      更新时间:2023-09-26

必须有比我在网上发现的更好的方法来做到这一点。

<script type="text/javascript">
    function Sub()
        {
            if (document.getElementById("DatePicker1").Text == "")
                alert("Select a date");
            else
                Submit(); //this is the c# function
        }
</script>
<asp:Button ID="Button1" runat="server" OnClientClick="Sub()" PostBackUrl="~/Default.aspx" Text="Submit" />

为什么如果我把它改为OnClick="Submit",我可以做到,但在客户端验证后尝试做到这一点太难了!非常令人沮丧。我是一个经验丰富的程序员,但对网络相关的东西还很陌生,所以当客户端与服务器的争论不断时
请告诉我任何好的解决方案。我宁愿不使用jQuery,因为我想稍后单独研究它。非常感谢。

您实际上不需要从Javascript中调用web方法。您可以尝试以下操作:

OnClickOnClientClick与您的按钮一起使用。在OnClientClick中执行return Sub()

<asp:Button ID="Button1" runat="server" OnClientClick="return Sub()" 
      OnClick="Button1_Click"  PostBackUrl="~/Default.aspx" Text="Submit" />

Button1_Click事件中,您可以调用您的方法Submit

在您的Javascript中,根据验证结果返回true或false。

<script type="text/javascript">
    function Sub()
    {
        if (document.getElementById("DatePicker1").Text == "")
        {
            alert("Select a date");
            return false;
        }
        else
        {
            return true;
        }
    }
</script>

这将防止在验证失败的情况下激发OnClick事件。

OnClick将在服务器端工作,在控制权传递给服务器之前,OnClientClick将执行客户端。

如果客户端代码返回TRUE,那么它将转到服务器。如果它被用来验证并返回false,它将不会进入服务器。