【问题标题】:Call C# function from Javascript in aspx webform and then reload page在 aspx webform 中从 Javascript 调用 C# 函数,然后重新加载页面
【发布时间】:2013-09-20 19:53:34
【问题描述】:

试图弄清楚如何在 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";
                    }

【问题讨论】:

  • 你能贴出你试过的代码吗?
  • 功能需要在网络表单中吗?它不能存在于其他地方,比如在单独的网络服务中吗?
  • 如果你真的想“重新加载页面”,这是你通常在网络表单上回发页面所得到的,如果你只是想更新页面上的某些内容,那通常是一个 ajax 调用。您能否更清楚您遇到的问题。
  • 刚刚发布了我当前的尝试。好吧,我有 javascript 中的值,并希望将它们传递给我的控制器。在我的 jquery 对话框中,按钮没有触发,所以认为 javascript 很简单,结果给我带来了麻烦。而且我的任何 javascript 都不会找到该操作。
  • 你提到了一个控制器,所以你可能使用的是 MVC 而不是 webforms。如果是这样,应该修复标签。

标签: c# javascript webforms


【解决方案1】:

您可能想尝试使用 WebMethods:

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

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

【讨论】:

  • 我用了一个和这个非常相似的,效果很好,谢谢。
【解决方案2】:

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

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

就我个人而言,我喜欢将 JSON.Net 用于服务器端 JSON,但您实际上并不需要它。查找 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 表单的教程。

【讨论】:

    猜你喜欢
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 2012-03-22
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多