【问题标题】:how to call a a C# server side method from ajax passing parametres to the function with CommandArgument?如何使用 CommandArgument 从 ajax 将参数传递给函数调用 C# 服务器端方法?
【发布时间】:2018-12-25 10:11:56
【问题描述】:

我有一个将数据存储到 sql server 的 c# 方法。这个函数是从 Onlick 调用的,我使用 CommandArgument 传递参数。像这样。

<asp:LinkButton runat="server" onClick="save" CommandArgument='<%# Eval("post_id").ToString() + "," + Eval("user_id").ToString()%>'></asp:LinkButton>

这是c#方法

    protected void vote(object sender, EventArgs e)
  {
    LinkButton lb = (LinkButton)sender;
    string arguments = lb.CommandArgument;
    string[] args = arguments.Split(',');

    string post = args[0];
    string user = args[1];
    .............
  }

我想做的就是使用 ajax 调用 c# 方法,因为我不希望刷新页面,但我不能调用传递 CommandArgument 的函数。我想使用 CommandArgument,因为我不希望 c# 方法具有除对象发送者和 EventArgs e 之外的其他参数

【问题讨论】:

  • 使用 webmethod..或使用 ajax 调用..或者因为你标记 asp.net 假设它的 web 表单..使用更新面板
  • 参考this link
  • J Sushil,感谢您的回答。我认为我的问题有所不同,因为我想使用 CommandArgument,这意味着我不希望 c# 方法具有除对象发送者和 EventArgs e 之外的其他参数,而只能使用 CommandArgument 访问参数
  • 我也尝试过使用内容模板的脚本管理器和更新面板,但不起作用。它仍然令人耳目一新

标签: javascript c# jquery asp.net ajax


【解决方案1】:

试试这个:

<asp:LinkButton runat="server" onClick="save" CommandArgument='<%# Eval("post_id").ToString() + "," + Eval("user_id").ToString()%>'></asp:LinkButton>

script标签中:

$("#<%= myVote.ClientID %>").click();

尝试 2:
script 标签中:

var func = $("#<%= myVote.ClientID %>").attr('OnClick');

eval(func);

思路是Asp.Net WebForms使用JS做postback到后端,生成的一个函数叫__doPostBack,思路是用同一个函数调用,或者只是检查生成的页面的HTML得到我记得,按钮的OnClick 属性的值,并使用它。

这也可能有帮助:
How to use __doPostBack()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    相关资源
    最近更新 更多