关于NopCommerce3.6版的@Html.Widget(“home_page_top”)的说明

以首页幻灯片为例子,首页幻灯片是在插件Nop.Plugin.Widgets.NivoSlider里面实现的

  1. 首页视图位置
  2. 这里其实是加载插件里面的视图内容,具体实现在插件实现
  3. 这个是扩展方法,就是执行Nop.Web 下面的WidgetController控制器里面的子动作WidgetsByZone

这个WidgetByZone就是查找当前已使用的@Html.Widget(“xxx”)并返回相应的控制器名字,方法名和路由值

  1. Widget控制器位置
  2. LoadActiveWidgetsByWidgetZone此方法是加载活动的@Html.Widget(“xxx”)的方法,具体实现大家可在相应实现类找到,注意它的返回对象是IWidgetPlugin接口

  3. 这个方法根据参数名就知道是通过@Html.Widget(“xxx”)里面的xxx作为参数找到实现@Html.Widget(“xxx”)这个的插件,具体实现在方法里面有

这里面是那个IWidgetService的实现类,这里的3方法后面跟着的是模糊查询,所以会根据页面有@Html.Widget(“xxx”)的xxx找到具体实现的插件

  1. 实现类的具体位置
  2. 加载已活动的@Html.Widget(“xxx”)实现方法
  3. 这个方法是定定义在插件里头的,它被定义在IWidgetPlugin接口下,所有有需要实现@Html.Widget(“xxx”)的插件都必须实现该接口

1. 幻灯片插件的位置

2. 实现IWidgetPlugin接口

3. 实现IWidgetPlugin接口下面的GetWidgetZones方法并在IWidgetService接口下的实现类被调用实现

--鱼头鱼尾

 

 

这就是我对nop里面的@Html.Widget(“xxx”)的理解,个人拙见,还望各位看官多多包涵。其它有什么细节的事可以在群里发问或者私聊我,我会的就帮忙。(群号: 75272942)

 

个人联系QQ:875755898 

原文地址:https://www.cnblogs.com/YUTOUYUWEI/p/4903965.html