我想要用户输入用户名和密码的登录表单如果正确的话,如果用户第一次登录则会检查首次登录然后页面shd重定向更改密码表单我想在silverlight中实现这个我是使用wcf服务编写代码所以我的逻辑是我在会话中存储用户名然后我重定向它以更改密码表单但有时它首先存储用户名然后重定向更改密码表单这是正确但下次如果我执行相同的形式,然后它首先重定向更改密码表单,然后它设置用户名会话,所以即使用户名是正确的,它重定向到登录表格请帮助我它让我疯了。 这是我的代码
gen.SetSessionVariableAsync(“uname”,username.Text); App.Navigate(new UserMgt.Changepassword());
理想情况下,第一行应该执行第一行,第二行执行第二行,但这里有时候第一次编译第一次,第二次第一次编译。
所以首先我要设置会话变量,然后我想重定向它以更改密码页面但是这里有时它确实正确但有时它首先重定向更改密码然后它设置为会话变量为什么它是这样的?有什么不对按顺序排列?
请让我知道判决silverlight执行的命令。任何帮助都将被高度挪用。您也可以通过foramparikh8884@gmail.com给我发电子邮件。
答案 0 :(得分:1)
您无法按照编写代码的顺序完成异步操作。顺序工作的方法是在Async方法上使用Completed事件,然后执行以下方法:
gen.SetSessionVariableAsync("uname", username.Text).Complete((o,e)=>
{
App.Navigate(new UserMgt.Changepassword());
});
请注意,我在上面的代码片段中使用了lambda表达式。
答案 1 :(得分:0)
因为SetSessionVariableAsync()方法是异步的,所以在完成时无法保证。如果你必须先完成那个结束,那么在第一个方法的已完成事件中触发第二个方法。