问题描述
简介
我正在开发一个插件,需要在某些条件下隐藏“确认”按钮(写在动作过滤器中)。
问题:
如何在 nopcommerce 的插件中隐藏结帐页面上的确认按钮。
问题
实际上,我无法按照某些解决方案的建议进行视图覆盖(并使用 ViewData),但我无法在视图中进行覆盖。
考虑从我为 /Checkout/Complete --get 编写的操作过滤器中解决问题
//if checkout process is generic
bool IsCheckoutConfirm = (filterContext.RouteData.Values["controller"].Equals("Checkout")
&& (filterContext.RouteData.Values["action"].Equals("Confirm")) && filterContext.HttpContext.Request.HttpMethod == "GET");
如果有人有想法或知道如何完成,请帮助我。 感谢您抽出宝贵时间。
解决方法
最简单的方法是复制 Confirm.cshtml 页面并将其放在以下两个位置之一:
- 主题的 views/checkout/ 文件夹
- 在您的插件中为 Themes/views/checkout/ 创建文件夹结构
拥有 Confirm.cshtml 的副本后,您可以将确认按钮包装在“if”条件中,该条件在您的插件中为布尔值编码,用于确定是否公开按钮。
有多种方法可以传递该值,可以通过扩展插件中的 CheckoutConfirmModel、操作过滤器等。