手机版使用余额支付 提示信息跳转到PC版的错误

引起错误的原因是中间需要提交到DTcms.Web\api\payment\balance\index.aspx去处理

导致BasePage.cs中的linkurl方法中  string requestPath = HttpContext.Current.Request.RawUrl.ToLower(); //当前的URL地址

获取到的地址为:/api/payment/balance/index.aspx

解决方法:

1、BasePage.cs中重写linkurl

 /// <summary>
/// 自定义:余额支付专用:返回URL重写统一链接地址
/// </summary>
public string linkurlpay(string _key, params object[] _params)
{
Hashtable ht = new BLL.url_rewrite().GetList(); //获得URL配置列表
Model.url_rewrite model = ht[_key] as Model.url_rewrite; //查找指定的URL配置节点 //如果不存在该节点则返回空字符串
if (model == null)
{
return string.Empty;
} string UrlReferrer = string.Empty;
if (HttpContext.Current.Request.UrlReferrer != null
)
UrlReferrer = HttpContext.Current.Request.UrlReferrer.ToString().ToLower(); //来源URL地址 string requestDomain = HttpContext.Current.Request.Url.Authority.ToLower(); //获得来源域名含端口号
string requestPath = HttpContext.Current.Request.RawUrl.ToLower(); //当前的URL地址
UrlReferrer=UrlReferrer.Replace(requestDomain, "").Replace("http://","");
string linkStartString = GetLinkStartString(UrlReferrer, requestDomain); //链接前缀 //如果URL字典表达式不需要重写则直接返回
if (model.url_rewrite_items.Count == )
{
//检查网站重写状态
if (config.staticstatus > )
{
if (_params.Length > )
{
return linkStartString + GetUrlExtension(model.page, config.staticextension) + string.Format("{0}", _params);
}
else
{
return linkStartString + GetUrlExtension(model.page, config.staticextension);
}
}
else
{
if (_params.Length > )
{
return linkStartString + model.page + string.Format("{0}", _params);
}
else
{
return linkStartString + model.page;
}
}
}
//否则检查该URL配置节点下的子节点
foreach (Model.url_rewrite_item item in model.url_rewrite_items)
{
//如果参数个数匹配
if (IsUrlMatch(item, _params))
{
//检查网站重写状态
if (config.staticstatus > )
{
return linkStartString + string.Format(GetUrlExtension(item.path, config.staticextension), _params);
}
else
{
string queryString = Regex.Replace(string.Format(item.path, _params), item.pattern, item.querystring, RegexOptions.None | RegexOptions.IgnoreCase);
if (queryString.Length > )
{
queryString = "?" + queryString;
}
return linkStartString + model.page + queryString;
}
}
} return string.Empty;
}

2、DTcms.Web\api\payment\balance\index.aspx.cs中所有的linkurl方法改为例如

 Response.Redirect(new Web.UI.BasePage().linkurlpay("payment", "?action=recharge")); //账户的余额不足
               

 提交订单不打开新页面

templates\mobile\payment.html

 <!--提交支付-->
<form id="pay_form" name="pay_form" method="post" action="{config.webpath}api/payment/{payModel.api_path}/index.aspx" target="_blank">

去掉target="_blank"

DTcms手机版使用余额支付 提示信息跳转到PC版的错误。以及提交订单不打开新页面的更多相关文章

  1. Web设计中打开新页面或页面跳转的方法 js跳转页面

    Web设计中打开新页面或页面跳转的方法 一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx ...

  2. HBuilder mui 手机app开发 Android手机app开发 ios手机app开发 打开新页面 预加载页面 关闭页面

    创建子页面 在mobile app开发过程中,经常遇到卡头卡尾的页面,此时若使用局部滚动,在android手机上会出现滚动不流畅的问题: mui的解决思路是:将需要滚动的区域通过单独的webview实 ...

  3. Web设计中打开新页面或页面跳转的方法

    一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx"); 2. 利用url地址打 ...

  4. vue的跳转方式(打开新页面)

    vue的跳转方式(打开新页面) 2018年11月22日 10:43:21 浊清... 阅读数 2043   版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和 ...

  5. asp.net c# 打开新页面或页面跳转

    1.最常用的页面跳转(原窗口被替代):Response.Redirect("XXX.aspx"); 2.利用url地址打开本地网页或互联网:Respose.Write(" ...

  6. vue的跳转方式(打开新页面)及传参

    1. router-link跳转 // 直接写上跳转的地址 <router-link to="/detail/one"> <span class="sp ...

  7. JS打开新页面跳转

      有时候使用js进行页面跳转,想使用 a 标签中 target="_blank" 形式,跳转打开一个新的页面. 可以使用以下脚本,创建一个 a标签,然后模拟点击操作. 代码如下: ...

  8. angularjs 中state.go 跳转并且打开新的浏览器窗口

    包子最近遇到业务人员提的非常无厘头的需求,就是调页面的时候,一定要打开一个新的浏览器窗口...>o<奇葩!!! 但是我的页面都是state.go跳转的呀,我各种百度,发现,貌似state, ...

  9. react中实现点击跳转到新页面方法

    实现点击跳转到新页面,可以有两种形式,一个是本地页面打开,一个是本地页面不变跳转到新的页面. (一)页面点击本地页面打开新页面 引入ant的Button组件 <Button style={{ba ...

随机推荐

  1. string 对象及其操作

    标准库类型string 标准库类型string表示可变长的字符序列,使用string类型必须首先包含string头文件.作为标准库的一部分,string定义在命名空间std中.接下来的示例都假定了已包 ...

  2. 进程环境之getrlimit和setrlimit函数

    每个进程都有一组资源限制,其中一些可以用getrlimit和setrlimit函数查询和更改. #include <sys/resource.h> int getrlimit( int r ...

  3. UserAgentStringLibrary

    It is at WebWorkContext.CurrentCustomer's part. //check whether request is made by a search engine / ...

  4. mysql中 case when的使用

    SELECT a.hsid, a.house_code, a.sale_date, a.pjid, COUNT( sdid ) AS num, b.hsid, b.pscid, b.hscode, b ...

  5. 解决位图失真-SetStretchBltMode()

    当用以下函数加载一张位图时,当窗口发生重绘更改大小时,位图将失真: CBitmap bitmap;  bitmap.LoadBitmap(IDB_BITMAP2); BITMAP bmp;  bitm ...

  6. [iOS 10 day by day] Day 1:开发 iMessage 的第三方插件

    本文介绍了 iOS 10 的一个重要更新:Messages 应用支持第三方插件了.作者用一个小游戏作为例子,说明了插件开发从建工程开始,到绘制界面.收发消息的全过程. <iOS 10 day b ...

  7. 关于mybatis用mysql时,插入返回自增主键的问题

    公司决定新项目用mybatis,虽然这个以前学过但是一直没用过都忘得差不多了,而且项目比较紧,也没时间去系统点的学一学,只好很粗略的百度达到能用的程度就行了. 其中涉及到插入实体要求返回主键id的问题 ...

  8. Android进阶笔记07:Android之MVC 理解

     1. 为什么需要MVC ? 软件中最核心的,最基本的东西是什么?  答:是的,是数据.我们写的所有代码,都是围绕数据的.      围绕着数据的产生.修改等变化,出现了业务逻辑.      围绕着数 ...

  9. iOS之上线被拒

    前言 感谢您付出宝贵的才华与时间来开发iOS应用程程序.从职业与报酬的角度而言,这对于成千上万的开发员来说一直都是一项值得投入的事业,我们希望帮助您加入这个成功的组织.我们发布了<App Sto ...

  10. python(3)-深浅拷贝

    import copy copy.copy()    浅拷贝 copy.deepcopy()   深拷贝 >>> import copy >>> a1 = 123 ...