在可视化 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 调用代码隐藏函数的主要内容,如果未能解决你的问题,请参考以下文章
sharepoint 2010 Visual webpart 中的自动完成功能