ajax调用asp.net后台方法:
test.aspx.cs后台代码如下:
[WebMethod] public static string test1() { return "hello"; }
//特别要提醒的是此处返回的值是{"d":""}格式,也就是说返回的值是{"d":"hello"}
test.aspx ajax代码
$.ajax({ type: "Post", url: "deepzooming.aspx/imgsall", contentType: "application/json; charset=utf-8", success: function (ms) { alert("msg" + ms.d); } });
asp.net传值到silverlight:
显示silverlight控件的html代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>deepzoomimg</title> <meta http-equiv="Pragma" content="no-cache"/> <meta http-equiv="Cache-Control"content="no-cache"/> <meta http-equiv="Expires" content="0"/> <style type="text/css"> html, body { height: 100%; overflow: auto; } body { padding: 0; margin: 0; } #silverlightControlHost { height: 100%; text-align:center; } </style> <script type="text/javascript" src="js/jquery-1.4.1.js"></script> <script type="text/javascript" src="Silverlight.js"></script> <script type="text/javascript"> var siliverlightObj=null; function siliverLoaded(sender,args){ siliverlightObj = sender.getHost(); //getSiliverlightObject GetTrendData(); } //此方法是用了获取其他页面传过来的值
function GetTrendData() { str = location.href; //获取本页url地址 //alert(str); arr = str.split("?"); str1 = arr[1]; arr1 = str1.split("="); var selectDate = arr1[1]; //siliverlightObj在上边的onload事件中已得到,selectDate为给siliverlight的参数 //此处通过获得silverlight对象调用silverlight中的方法
siliverlightObj.Content.TrendMethod.GetThree(selectDate); } function onSilverlightError(sender, args) { var appSource = ""; if (sender != null && sender != 0) { appSource = sender.getHost().Source; } var errorType = args.ErrorType; var iErrorCode = args.ErrorCode; if (errorType == "ImageError" || errorType == "MediaError") { return; } var errMsg = "Silverlight 应用程序中未处理的错误 " + appSource + "\n" ; errMsg += "代码: "+ iErrorCode + " \n"; errMsg += "类别: " + errorType + " \n"; errMsg += "消息: " + args.ErrorMessage + " \n"; if (errorType == "ParserError") { errMsg += "文件: " + args.xamlFile + " \n"; errMsg += "行: " + args.lineNumber + " \n"; errMsg += "位置: " + args.charPosition + " \n"; } else if (errorType == "RuntimeError") { if (args.lineNumber != 0) { errMsg += "行: " + args.lineNumber + " \n"; errMsg += "位置: " + args.charPosition + " \n"; } errMsg += "方法名称: " + args.methodName + " \n"; } 引发新错误(errMsg); } </script> </head> <body> <form id="form1" runat="server" style="height:100%"> <div id="silverlightControlHost"> <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> <param name="source" value="ClientBin/deepzoomimg.xap"/> <param name="onError" value="onSilverlightError" /> <param name="background" value="white" /> <param name="onLoad"value="siliverLoaded"/> <param name="minRuntimeVersion" value="4.0.50401.0" /> <param name="autoUpgrade" value="true" /> <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="获取 Microsoft Silverlight" style="border-style:none"/> </a> </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div> </form> <script type="text/javascript"> </script> </body> </html>
在app.xaml.cs注册TrendMethod的代码:
private void Application_Startup(object sender, StartupEventArgs e) { this.RootVisual = new MainPage(); System.Windows.Browser.HtmlPage.RegisterScriptableObject("TrendMethod", this.RootVisual); }
在Mainpage.xaml.cs中添加要调用的方法 代码如下:
[ScriptableMember] public void GetThree(string imgfile) { msi.Source = new DeepZoomImageTileSource(new System.Uri("/"+imgfile+"/dzc_output.xml", UriKind.Relative)); // LayoutRoot.Children.Add(msi); msi.UpdateLayout(); }