在aspx webform中从Javascript调用C#函数,然后重新加载页面

Call C# function from Javascript in aspx webform and then reload page

本文关键字:新加载 加载 然后 中从 webform aspx Javascript 调用 函数      更新时间:2023-09-26

试图弄清楚如何在Web表单中调用c#函数。我尝试了ajax和windows.location,但可能只是在我的道路上。尝试在 SpeakerList.aspx/update 上发送我的 c# 代码,然后附加我在 javascript 中的两个变量,这应该不会太糟糕。但是希望它命中 C# 函数然后重新加载页面,所以希望只是缺少一个简单的调用。

 buttons: {
                    "Save": function () {
                        var combo = ASPxClientControl.GetControlCollection().GetByName('DropDownList1');
                        var value = combo.GetSelectedItem().value;
                        var billID = $("#billID").val();
                        window.location = "SpeakerList.aspx/updateRec";
                    }

您可能想尝试使用 WebMethods:

http://aspalliance.com/1922_PageMethods_In_ASPNET_AJAX.all

这允许您使用 JavaScript 在页面代码中调用函数。

假设您使用的是 MVC,您可能希望返回一个 JSON 结果。在客户端网页中使用 Json 的一种简单方法是使用 JQuery。您可以将 JSON 作为网页的输出返回,但我不建议这样做。创建一个单独的服务点,用于使用 JSON 方法。

很难说你实际上在尝试完成什么,但 JSON 方法的正常使用模式是提供参数作为查询字符串的一部分(如果需要,可以使用路由重构)。结果只是一个 JSON 数据包。

就个人而言,我喜欢服务器端 JSON 的 JSON.Net,但您实际上并不需要这个。查找 JSONMethod 的示例等,向您展示如何执行此操作。

在浏览器客户端中,JQuery 有一个 json 方法,但我个人建议使用更通用的 ajax 方法 JQuery,这样您就可以使用处理程序来获得成功、错误和完成。 例如

  $.ajax({
    url: "http:...",
    data: queryparm,
    cache:false,
    timeout:15000,
    success: function(data){
      jresult = $.parseJSON(data);
      ...
    },
    error:function (xhr, ajaxOptions, thrownError)
    {
      setErrorMsg("Error getting search results: " + thrownError);
    } 
  });

编辑 - 实际上,我也对网络表单做了完全相同的事情,代码本质上是相同的(如果您在服务器端使用 JSON.Net)。您没有路由选项来使 urls REST 兼容,但作为内部 json Web 服务,您可能不会真正关心这一点。

作为网页 (.aspx) 页面,您可以使用"回发"这是 Web 表单的最简单方法。如果不传回本机"控件"值,则始终可以声明一些用于数据传递的隐藏字段。如果您不知道如何执行此操作,则需要阅读有关使用 Web 表单的教程。