Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从aspx webform中的Javascript调用C#函数,然后重新加载页面_C#_Javascript_Webforms - Fatal编程技术网

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

从aspx webform中的Javascript调用C#函数,然后重新加载页面,c#,javascript,webforms,C#,Javascript,Webforms,试图找出如何在网络表单中调用c#函数。我尝试了ajax和windows.location,但可能只是偏离了方向。尝试将我的c#代码发送到SpeakerList.aspx/update,然后附加javascript中的两个变量,这应该不会太糟糕。但是希望它点击C#函数,然后重新加载页面,这样就希望我错过了一个简单的调用 buttons: { "Save": function () { var combo =

试图找出如何在网络表单中调用c#函数。我尝试了ajax和windows.location,但可能只是偏离了方向。尝试将我的c#代码发送到SpeakerList.aspx/update,然后附加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:


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

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

很难说您实际想要完成什么,但是JSON方法的正常使用模式是将参数作为querystring的一部分提供(如果需要,您可以使用路由进行重构)。结果就是一个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);
    } 
  });
编辑——事实上,我对webforms也做了同样的事情,代码基本上是相同的(如果在服务器端使用JSON.Net)。您没有使URL与REST兼容的路由选项,但是作为一个内部json web服务,您可能不会真正关心这一点


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

您可以发布您尝试过的代码吗?该函数是否需要在web表单中?它难道不能存在于其他地方,比如在一个单独的web服务中吗?如果你真的想“重新加载页面”,这是你在web表单上的页面回发通常得到的结果,如果你只想更新页面上的内容,那通常是一个ajax调用。你能更清楚地知道你有什么问题吗?刚刚发布了我当前的尝试。我有javascript中的值,希望将它们发送到我的控制器。在我的jquery对话框中,按钮没有启动,所以javascript很简单,结果给我带来了麻烦。我的javascript都找不到这个动作。你提到了一个控制器,所以你可能使用的是MVC而不是webforms。如果是这样的话,我应该修复标签。我用了一个非常类似的,效果非常好,谢谢。