![](/img/trans.png)
[英]Call Webmethod in Usercontrol.cs from Usercontrol.ascx javascript
[英]Ajax call to use JSON data in UserControl.ascx
我在VisualWebPart
項目中有一個usercontrol
,我想進行ajax調用以獲取json數據並在Jquery插件中使用它。 在簡單的web applications
我使用一個Web服務,該服務返回JSON數據並通過Ajax在我的頁面中調用它,這聽起來像我無法在.ascx控件中使用Web服務,甚至無法使用Web Methods
,因此如何在UserControl
調用方法來獲取JSON數據。
編輯:我有此代碼,我也想在UserControl
執行此操作。 在WebService
:
public class getTimeLineService : System.Web.Services.WebService
{
[WebMethod]
public String getJsonTimeLine()
{
List<TimeLine> list = new List<TimeLine> { new TimeLine { headline = "Vine", text = "<p>Vine Test</p>", startDate = "1391,12,12", endDate = "1392,1,27" }, new TimeLine { headline = "Sh*t Politicians Say", text = "<p>In true political fashion, his character rattles off common jargon heard from people running for office.</p>", startDate = "1392,1,26", endDate = "1392,1,27" } };
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
StringBuilder sb = new StringBuilder();
serializer.Serialize(list, sb);
return sb.ToString();
}
}
並通過ajax使用此WebService
:
$.ajax({
type: "POST",
url: "getTimeLineService.asmx/getJsonTimeLine",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var jsonDate = eval( data.d );
},
failure: function (msg) {
alert(msg);
}
});
您可以在頁面上調用網絡方法,並使頁面的方法從服務器代碼中提取。 您可以在控件中設置會話值,然后通過網絡方法從中提取。 由於控件不是頁面,因此它們實際上不提供任何服務,僅呈現它們。
在使用靜態網絡方法時,您將需要使用HttpContext來獲取會話數據。
http://msdn.microsoft.com/zh-CN/library/system.web.httpcontext.session.aspx
將用戶控件中的數據存儲在會話中:
Session["MyData"] = myDataObj;
您可以通過以下方式通過WebMethod訪問Session:
var myRetrievedDataObj = HttpContext.Session["MyData"];
您可以使用JavaScriptSerialzer類從服務器對象和集合返回序列化的JSON。 http://msdn.microsoft.com/zh-CN/library/system.web.script.serialization.javascriptserializer.aspx
然后,您將該字符串返回到AJAX調用中,並獲得JSON數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.