• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > SignalR发送页面跳转通知的方法

SignalR发送页面跳转通知的方法

作者:loveseejoy 字体:[增加 减小] 来源:互联网 时间:2017-05-11

loveseejoy通过本文主要向大家介绍了signalr,signalr教程,signalr怎么读,signalr原理,signalr 监听udp等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

微信商城使用支付宝支付的时候,需要有个过度页面提示用户用浏览器打开页面去支付,等用户在浏览器支付完之后再打开微信(微信此时依旧显示的是过度页面),过度页面需要跳转到订单详情页面。那么这个过度页面怎么知道需要跳转呢?

目前能想到的就是用SigbalR发送通知告诉那个过度页面去跳转.

第一步,先添加SigbalR相关dll.

第二步,自定义hub

 public class myHub:Hub
 {
  public override Task OnConnected()
  {
   return base.OnConnected();
  }
 }
</div>

第三步,自定义UserIdProvider,因为我们需要给指定用户发送跳转的通知

public class CustomerUserIdProvider: IUserIdProvider
 {
  public string GetUserId(IRequest request)
  {
   //获取当前登录用户
   var customer = EngineContext.Current.Resolve<IWorkContext>().CurrentCustomer;
   if(customer==null)
   {
    return "";
   }else
   {
    //返回当前登录用户id
    return customer.Id.ToString();
   }
  }
 }
</div>

第四步,在startup里注册我们自定义的UserIdProvider

//SignlR
 var idProvider = new CustomerUserIdProvider();
GlobalHost.DependencyResolver.Register(typeof(IUserIdProvider), () => idProvider);
app.MapSignalR();
</div>

第五步,在支付宝支付完成异步通知加上这行代码发送通知,并且传入订单单号参数,这里给order customerid的用户发送通知,order customerid和当前登录者的id是一样的。所以能接收到信息。

var myHub = GlobalHost.ConnectionManager.GetHubContext<myHub>();
myHub.Clients.User(order.OrderCustomerId.ToString()).redirctOrderDetails(order.OrderNumber); 
</div>

第六步,在在过度页面接受执行

// 声明一个代理引用该集线器,记得$.connection.后面的方法首字母必须要小写,这也是我为什么使用别名的原因
var chat = $.connection.chinookHub;
// 这里是注册集线器调用的方法,和1.0不同的是需要chat.client后注册,1.0则不需要
chat.client.redirctOrderDetails = function (oerderNumber) {
 window.location.href = "/Customer/MyOrderDetails?page=4&orderNumber=" + oerderNumber;
 };
chat.client.redirctMoneyAccountDetail = function () {
 window.location.href = "/Customer/AccountDetail/Money";
 };
 // 启动连接
$.connection.hub.start();
</div>

这样,就可以完美的实现支付完成后跳转页面了。目前没想到更好的办法了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SignalR发送页面跳转通知的方法
  • 详解在ASP.NET Core下使用SignalR技术
  • Asp.net SignalR 让实时通讯变得如此简单
  • ASP.NET MVC中SignalR的简单应用
  • SignalR Self Host+MVC等多端消息推送服务(三)
  • SignalR Self Host+MVC等多端消息推送服务(二)
  • SignalR Self Host+MVC等多端消息推送服务(一)
  • Asp.net MVC SignalR来做实时Web聊天实例代码

相关文章

  • 2018-08-20MVC、MVP和MVVM分别是什么_动力节点Java学院整理
  • 2017-05-11.net制作的抽餐厅和游戏装备的小程序
  • 2017-05-11Asp.net自定义控件之加载层
  • 2017-05-11.NET下实现数字和字符相混合的验证码实例
  • 2017-05-11asp.net通过Ajax UpdatePanel回传后滚动条位置变更解决方法
  • 2017-05-11asp.net Context.Handler 页面间传值方法第1/2页
  • 2017-05-11微信公众平台支付开发详解
  • 2018-08-20visual studio 2015+opencv2.4.13配置教程
  • 2017-05-11asp.net对URL含有中文参数的转换
  • 2017-05-11ABP框架中的日志功能完全解析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • c# 连接字符串数据库服务器端口号 .net状态服务器端口号
    • C# new和override的区别分析
    • asp.net web页面自定义分页控件使用详解
    • ASP.NET实现用户注册和验证功能(第4节)
    • Request.QueryString与一般NameValueCollection的区别
    • ASP.NET中 Wizard 控件的使用方法
    • asp.net控件DataList分页用法
    • asp.net操作ini文件示例
    • XAML: 自定义控件中事件处理的最佳实践方法
    • asp.net 新闻列表样式代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有