gpt4 book ai didi

c# - 从 Javascript 调用 C# 方法的最简单方法是什么

转载 作者:行者123 更新时间:2023-11-30 19:08:02 25 4
gpt4 key购买 nike

我有一个 LinkBut​​ton 控件,我需要向其添加 c# 方法。目前,当我使用解析控件并将控件添加到页面时,它会更改对 javascript 的调用并且我得到未定义。我想出一种解决方法是定义一个 javascript 函数,该函数将从后面的代码中调用 c# 方法,但我不知道该怎么做。

特别是在单击链接按钮时我需要 javascript 将链接按钮的 ID 传递给 C# 方法

我试过这个:

foreach (Control Control in myctrl.Controls)
{
if (Control is LinkButton)
{
LinkButton lb = (LinkButton)Control;
lb.Click += LinkButton_Click;

}
Panel1.Controls.Add(myctrl);
}



public void LinkButton_Click(Object sender, EventArgs e)
{
BREAKPOINTHERE> Console.Write(e.ToString());

}

它从不在点击时触发。这是生成的代码:

<a id="dnn_ctr954_ViewPromotions_LinkButton2" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;dnn$ctr954$ViewPromotions$LinkButton2&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))">Get your Free 2</a>

现在如果我把它放在我的 aspx 页面中,它工作正常:

 <asp:LinkButton ID="test" OnClick="LinkButton_Click" runat="server">mybutton</asp:LinkButton>

我明白了,它工作正常:

<a id="dnn_ctr954_ViewPromotions_test" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;dnn$ctr954$ViewPromotions$test&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))">mybutton</a>

最佳答案

您本身不能这样做。 Javascript 存在于客户端。服务器上存在 C# 代码。他们不可能对彼此有任何背景知识。服务器代码运行以响应 HTTP 请求。

也就是说,您可以在 C# 中创建一个 Web 服务方法并使用 javascript 调用它。但是,从您问题的上下文来看,它可能无法满足您的要求。 Web 服务方法是静态的,并且没有与常规回发相同的上下文。

但是,您可以查看一些类似这样的文章:Client-Side Web Service Calls with Ajax Extensions

编辑:通过您的编辑,听起来您只想将按钮回发到服务器。这是 ASP.Net 的核心功能,而且很容易做到。正如其他答案所建议的那样,您只需要在服务器代码中连接一个点击事件处理程序。

关于c# - 从 Javascript 调用 C# 方法的最简单方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2290553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com