3

我在 JavaScript(Mypage.aspx) 中有一个名为“callfunction()”的函数。这个函数应该在 C# (Mypage.aspx.cs) 中调用另一个函数“func()”

像这样的东西:

(在 Mypage.aspx 中)

 function callfunction()

 {

  // i have to call func() function here .....

 }

 </script>

(在 Mypage.aspx.cs 文件中)

 public void func()

 {

 // My code goes here

 }

因此我进行了很多研究,到目前为止我得出了两个结论:第一个是使用 Json,但我的上级明确表示他们不希望我这样做。第二个是因为客户端、服务器 aspnet 协议,我不能按我的意愿做

请给我任何提示如何做到这一点,我越来越绝望

4

3 回答 3

6

好的....尝试使用page methods

首先在您的 aspx 页面上添加一个脚本管理器

  <asp:ScriptManager ID="scpt" runat="server" EnablePageMethods="true">
</asp:ScriptManager>

然后转到您的 aspx.cs 页面并声明一个类似的函数

[System.Web.Services.WebMethod]
    public static string ValidateUser(string emailId, string password)
    {
        //Your logic code
        return returnString;
    }

然后从你的 javascript 调用 c# 方法,如

 PageMethods.ValidateUser(email, password, CallSuccess_Login, CallFailed_Login);

并且还在你的javascript中创建2个回调函数CallSuccess_LoginCallFailed_Login

希望能帮助到你

于 2013-07-01T10:38:25.270 回答
3

如果它是一个 webforms 项目(不是 MVC)并且你不想使用 AJAX,你可以使用__doPostBack

<script type="text/javascript">
 function callfunction(parameter)
 {
     __doPostBack('func', parameter)
 }
</script>

C#:

public void Page_Load(object sender, EventArgs e)
{
  string parameter = Request["__EVENTARGUMENT"]; // parameter
  var senderObject = Request["__EVENTTARGET"]; // func
  if(senderObject == "func")
  {
     //call your function here, or write the implementation
  }
}
于 2013-07-01T10:44:56.110 回答
0

以下是您可以使用的选项

  1. 如果您使用 asp.net,则使用 Ajax 工具来创建它

  2. 如果您不想使用 Ajax 工具包,请使用 JavaScript __doPostBack

  3. 或其他选项在 Web 服务中编写服务器端函数并使用 JavaScript 调用 Web 方法

于 2013-07-01T15:02:16.047 回答