zoukankan      html  css  js  c++  java
  • Nop 源码分析 十三 插件

    前面分析太细了。。回到WidgetController的WidgetsByZone方法,大体意思是:

    获得并缓存名称为string widgetZoneList<RenderWidgetModel>()

    其中RenderWidgetModel记录的路由信息通过插件的GetDisplayWidgetRoute方法获得  如下:

    /// <summary>
            /// Gets a route for displaying widget
            /// </summary>
            /// <param name="widgetZone">Widget zone where it's displayed</param>
            /// <param name="actionName">Action name</param>
            /// <param name="controllerName">Controller name</param>
            /// <param name="routeValues">Route values</param>
            public void GetDisplayWidgetRoute(string widgetZone, out string actionName, out string controllerName, out RouteValueDictionary routeValues)
            {
                actionName = "PublicInfo";
                controllerName = "WidgetsNivoSlider";
                routeValues = new RouteValueDictionary
                {
                    {"Namespaces", "Nop.Plugin.Widgets.NivoSlider.Controllers"},
                    {"area", null},
                    {"widgetZone", widgetZone}
                };
            }

    最后返回的是一个部分视图  model是:

    new List<RenderWidgetModel>();

    查看部分视图:

    @model List<RenderWidgetModel>
    @using Nop.Web.Models.Cms;
    @foreach (var widget in Model)
    {
        @Html.Action(widget.ActionName, widget.ControllerName, widget.RouteValues)
    }

    其实就是调用所有的Action.


    继续_Root.Head.cshtml。

    生成样式表文件,JS文件,和LINK等

    然后Action了几个部件:

    @Html.Action("RssHeaderLink", "News")
        @Html.Action("RssHeaderLink", "Blog")
        @*Favicon - upload favicon.ico file to the root directory*@
        @Html.Action("Favicon", "Common")
  • 相关阅读:
    Bootstrap 4 网格的基本结构
    Js 框架之Vue .JS学习记录 ① 与Vue 初识
    ASP.NET 发送邮件 SMTP
    c# 多线程简化
    ASP.NET Razor
    ASP.NET MVC 简单介绍①
    握手7
    握手6
    握手5
    握手4
  • 原文地址:https://www.cnblogs.com/runit/p/4235486.html
Copyright © 2011-2022 走看看