在可视化 webpart 中从 javascript 调用代码隐藏函数

Posted

技术标签:

【中文标题】在可视化 webpart 中从 javascript 调用代码隐藏函数【英文标题】:Call code-behind function from javascript in visual webpart 【发布时间】:2014-05-31 08:05:21 【问题描述】:

有可能吗?在可视化 Web 部件中从 javascript 调用代码隐藏 c# 函数?

这是一个复杂的功能,因此将我的所有代码都转换到客户端不是一种选择。我希望这个函数中的逻辑在没有页面刷新的情况下发生。这是我的问题的背景。

谢谢大家..

【问题讨论】:

【参考方案1】:

您可以使用 jQuery ajax 调用服务器端方法并获取要在 javascript 中使用的响应。这个article 有简单而好的例子来展示你需要做什么。

背后的代码

public partial class _Default : Page 

  [WebMethod]
  public static string GetDate()
  
    return DateTime.Now.ToString();
  

Javascript

$.ajax(
  type: "POST",
  url: "PageName.aspx/MethodName",
  data: "",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) 
    // Do something interesting here.
  
);

【讨论】:

谢谢。但是您引用的 URL 和示例讨论了不能在用户控件(如 viusal Web 部件)中使用的页面方法。对吗? Web 部件被添加到一些 aspx 页面不是吗? 是的,当然。但我试过这样做,但没有奏效。您提供的示例,我确实尝试过。现在我不确定我是否犯了一些错误,或者这种方法行不通。让我再尝试一次。谢谢! 你需要为它添加jQuery 是的,我做了所有这些。我确保我没有犯任何明显的错误。【参考方案2】:

为什么不使用可以通过 AJAX 调用的 Web 服务(支持 Ajax 的 WCF 服务)?

我认为这将是干净的方式。将您的逻辑放在一个额外的类中,并在 Web 服务和您的 Web 部件中使用该类。然后你不能从代码和 Javascript 调用方法。

【讨论】:

是的,就在那里。但我想知道我们是否可以在没有网络服务的帮助下做到这一点。不幸的是,在我能够证明所要求的方法不起作用之前,我不能选择使用网络服务。

以上是关于在可视化 webpart 中从 javascript 调用代码隐藏函数的主要内容,如果未能解决你的问题,请参考以下文章

MOSS的WebPart问题

具有许多用户控件的共享点 webpart

sharepoint 2010 Visual webpart 中的自动完成功能

沙盒装视觉 webpart

重新安装/更新 SharePoint Webpart 解决方案

添加 Web 部件时出错