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

时间:2013-09-20 19:53:34

标签: c# javascript webforms

试图找出如何在webform中调用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";
                    }

2 个答案:

答案 0 :(得分:0)

您可能想尝试使用WebMethods:

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

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

答案 1 :(得分:0)

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

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

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

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

  $.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);
    } 
  });

编辑 - 实际上,我也用webforms完成了同样的事情,代码基本相同(如果你在服务器端使用JSON.Net)。您没有路由选项来使URL符合REST,但作为内部json Web服务,您可能不会真正关心它。

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