从javascript函数调用c#方法

本文关键字:方法 函数调用 javascript | 更新日期: 2023-09-27 18:06:38

我需要从javascript调用c#方法。我需要的方法被调用,只有当javascript按钮被点击即(btnclick())。但是Login方法在onclick按钮之前执行。

aspx文件
    <script type="text/javascript">
    function  btnclick()
    {
    <%=Login() %>;     //calling the c# method
    };
    $(document).ready(function ()
    {
        $(".username").focus(function () {
            $(".user-icon").css("left", "-48px");
        });
    </script>
    <body>
    //contains other elements like username and password text boxes
    <input type="submit" id="submit" name="submit" value="Login" class="button" onclick="btnclick()"/>
    </body>

aspx.cs文件

下面的c#方法必须从javascript

调用
 protected void Login()
{
//contains method for authentication
}

有没有其他方法可以从javascript中调用c#方法

从javascript函数调用c#方法

你的问题暴露出你对网站的运作方式缺乏了解。你根本不能在javascript代码中执行c#函数,比如:

function  btnclick()
{
<%=Login() %>;     //calling the c# method
};

,因为javascript在浏览器上运行,c#在服务器上运行。你的c# Login方法被调用的原因是你的按钮被配置为提交表单,我想表单是指向你的服务器。

您是否尝试添加api控制器并将方法放在其中?我真的很喜欢使用ProxyApi(它就像添加一个NuGet一样简单),它为你生成干净的javascript代理。您只需几分钟就可以启动并运行它:

  • 添加ApiController并添加Login方法
  • 通过NuGet添加ProxyApi并在javascript中引用:[script src="~/api/proxy "][/script]
  • 在javascript中像这样调用c#方法:

    .proxies.myapi美元。登录(一些参数)。Done (function(data) {//完成了!});

见:https://github.com/stevegreatrex/ProxyApi

你可以定义c#方法为webmethod。

试一试:

[WebMethod]
protected void Login()
{
   //contains method for authentication
}

谢谢。

<script language="javascript" type="text/javascript">
function jsFunction()
{
    document.getElementById('<%=lbSubmit.ClientID%>').click();
}
</script>


<asp:LinkButton  ID="lbSubmit" runat="server" Text="Update Files" 
onclick="cshapbottun_Click" ></asp:LinkButton>

C# code
protected void cshapbottun_Click(object sender, EventArgs e)
{
//    DoSomething;
}