Silverlight中如何与Asp.Net交换变量,取得Session的值问题?
2009-11-22 16:51
453 查看
前些日子做个项目,在Silverlight的Page.xaml页面中读取数据库的信息,要将此登录信息传递给Aspx页面,涉及到Silverlight与Asp.Net交互的问题。
这里要将UserID、RoleID的值传递给一个Aspx页面,变成登录的Session变量,如何解决!
这里用一个简单的方法来实现。
这里如果是要将Aspx中的值传递给Silverlight中Xaml的页面,如何解决呢?这里给个思路!
在Silverlight2中可以用那个InitParameter来传递,但在Sl3中又改变了方式:
<param name="initparams" value="path=GeneratedImages/dzc_output.xml,zoomIn=3" />
App.Xaml.cs里
if (e.InitParams != null)
{
foreach (var data in e.InitParams)
{
.....
}
}
这里还可以采用以下直接的方法:
把参数直接存在: <input type="hidden" id="YouParaName" name="YouParaName" value="YouParaValue" >
然后在SL里面:HtmlPage.Document.GetElementById("YouParaName").GetAttribute("value")
这样也很方便,而且更容易理解,而且方便Post到服务器。
public static string UserPassWord; public static string UserID; public static string RoleID; HtmlWindow html = HtmlPage.Window; //选择人员读取人员信息 private void comUser_SelectionChanged(object sender, Telerik.Windows.Controls.SelectionChangedEventArgs e) { if (comUser.SelectedValue != null) { WcfServiceClient ClientInfo = new WcfServiceClient(); ClientInfo.GetUserInfoCompleted += new EventHandler<GetUserInfoCompletedEventArgs>(ClientInfo_GetUserInfoCompletedEventArgs); ClientInfo.GetUserInfoAsync(comUser.SelectedValue.ToString()); } } //记录人员的登录信息 void ClientInfo_GetUserInfoCompletedEventArgs(object sender, GetUserInfoCompletedEventArgs e) { if (e.Error == null) { foreach (var its in e.Result) //e.Result就是我们从WCF服务得到的返回值 { UserPassWord = its.PassWord; UserID = its.UserID.ToString(); RoleID = its.RoleID.ToString(); } } else { html.Alert(ErrorMessage); } }
这里要将UserID、RoleID的值传递给一个Aspx页面,变成登录的Session变量,如何解决!
这里用一个简单的方法来实现。
//登录系统,记录登录人员ID. private void btnLogin_Click(object sender, RoutedEventArgs e) { if (txtPassWord.Password == UserPassWord) { string url = "http://localhost:24690/MasterMain.aspx?USERID=" + UserID+"&ROLEID="+RoleID; html.Navigate(new Uri(url)); } else { string Message = "友情警告:口令不正确!请核实!"; html.Alert(Message); } }
这里如果是要将Aspx中的值传递给Silverlight中Xaml的页面,如何解决呢?这里给个思路!
在Silverlight2中可以用那个InitParameter来传递,但在Sl3中又改变了方式:
<param name="initparams" value="path=GeneratedImages/dzc_output.xml,zoomIn=3" />
App.Xaml.cs里
if (e.InitParams != null)
{
foreach (var data in e.InitParams)
{
.....
}
}
这里还可以采用以下直接的方法:
把参数直接存在: <input type="hidden" id="YouParaName" name="YouParaName" value="YouParaValue" >
然后在SL里面:HtmlPage.Document.GetElementById("YouParaName").GetAttribute("value")
这样也很方便,而且更容易理解,而且方便Post到服务器。
相关文章推荐
- 基于ASP.net C#技术来实现,介绍如何处理Session对象变量失效的问题
- 如何在ASP.Net中取得环境变量的值
- 如何解决 asp.net session 丢失问题
- Asp.net中如何处理一个站点不同Web应用通用Session的问题
- 如何在ASP.NET环境下长期保存ASP.NET页面的session变量
- asp.net如何取得纯客户端控件的值
- 在ASP.NET中使用Session常见问题集锦
- 关于ASP.NET MediaPlayer服务器控件及ie11中silverlight相关问题
- asp.net application,session,static 几种变量生命周期及用法
- 构建高性能ASP.NET站点 第七章 如何解决内存的问题(前篇)―托管资源优化―垃圾回收机制深度剖析
- 【原创】构建高性能ASP.NET站点 第七章 如何解决内存的问题(前篇)—托管资源优化—垃圾回收机制深度剖析
- [转]在ASP.NET中使用Session常见问题集锦
- ASP.NET Session丢失问题原因及解决方案[转]
- 在ASP.NET中使用Session常见问题集锦
- 如何在Silverlight应用程序中获取ASP.NET页面参数
- [转]在ASP.NET中使用Session常见问题集锦
- 在asp.net webservice中如何使用session
- 黑马程序员之ASP.NET学习笔记:AJAX解决什么问题?如何使用AJAX?
- 在两个ASP.NET页面之间传递变量 (QueryString,Session和Server.Transfer)
- 如何处理asp.net的webapi项目的测试环境与生产环境的help页面可见/不可见问题。