单击时如何使href链接触发C#方法
Posted
技术标签:
【中文标题】单击时如何使href链接触发C#方法【英文标题】:how to make href links fire C# methods when clicked 【发布时间】:2013-08-02 11:27:00 【问题描述】:我基本上想要做的是,当我单击 html 中的 href 链接时,它应该触发附加到该链接的 C# 方法。我这样做有什么选择? html onclick 仅查找 javascript 函数。另请注意,我没有链接到另一个页面,我只是想用它来向 URL 添加参数,然后运行 C# 并在方法中使用这些参数。
【问题讨论】:
你是如何“托管”这个 html 页面的? 如果您正在编写 ASP .NET WebForms 应用程序,您可以使用LinkButton
。
是否可以在单击第一个 LinkButton 时让 LinkButton 创建另一个 LinkButton?
@5tar-Kaster - 喜欢 LinkButton Inception?取决于你的意思LinkButton
通常调用服务器端代码,所以你可以在服务器上创建另一个LinkButton
?你到底想达到什么目的?
@Belogix 我想基本上根据数据库中未知数量的条目动态创建一堆 LinkButtons,这就是我的最终目标。
【参考方案1】:
您必须创建一个使用 ajax 调用的 C# webmethod 或 WebAPI。您不能直接从 html 或 javascript 访问 C# 方法,除非您使用诸如服务器端控件 (LinkButton) 之类的东西,然后您可以添加 C# 处理程序以单击该按钮。
所以客户端你的'onClick'会执行一个javascript函数。 Javascript 函数会调用 C# web 方法,传入参数,然后 onSuccess 你会得到结果并随心所欲地处理它们。
【讨论】:
【参考方案2】:您可以使用表单在隐藏字段中传递您的值,
<form name="FUN" method="post" action="FUN.aspx" onsubmit='return funCheckProgramName()' >
<input name="userAction" type="hidden" value="submitName">
---------------------------------------------------------------------
function funSearchProgram()
document.FUN.userAction.value="submitName";
-----------------------------
在这里你可以有一个你想要发布的值,或者你可以使用 javascript 来为你的隐藏字段赋值。
================================================ ===============================
**string str = Request.Form["userAction"].ToString();**
=====================================
现在你有了你的价值,你可以添加处理程序
if (userAction.Trim ().Equals ("submitName"))
submitNameHandler();
private void submitNameHandler()
//Your Code goes here .
【讨论】:
以上是关于单击时如何使href链接触发C#方法的主要内容,如果未能解决你的问题,请参考以下文章
单击触发 JavaScript 的链接时,如何阻止网页滚动到顶部?
如何在单击链接时触发另存为弹出窗口?具体来说,我如何触发 MIME 类型的变化?