渲染局部视图NopCommerce插件

时间:2014-04-29 12:47:10

标签: partial-views nopcommerce

我正在努力在nopcommerce上写一个新的付款插件。

如何在PaymentInfo.cshtml中呈现新的部分视图?新视图使用PaymentInfo.cshtml找到相同的路径。

2 个答案:

答案 0 :(得分:0)

在nopCommerce的插件中呈现任何视图,它必须是嵌入式资源,并且必须以完全限定的名称编写,如

@Html.Partial("Nop.Plugin.Something.Something.Views.Plugin.VIEWNAME", item)

答案 1 :(得分:0)

您可以创建自定义视图引擎并将其添加到付款插件中。这样您就可以向Nopcommerce添加路线。

首先创建自定义视图引擎

CustomViewEngine.cs

public class CustomViewEngine : RazorViewEngine
    {
        public CustomViewEngine()
        {
            PartialViewLocationFormats = new[] { "~/Plugins/Misc.HelloWorld/Views/{0}.cshtml" };
            ViewLocationFormats = new[] { "~/Plugins/Misc.HelloWorld/Views/{0}.cshtml" };

        }
    }

将Misc.Helloworld的路径更改为插件的路径。

将.Edit更改为控制器中的操作。

将控制器的其他信息和操作更改为插件中的名称。

之后,创建一个RouteProvider.cs

ViewEngines.Engines.Insert(0, new CustomViewEngine());


        var route = routes.MapRoute("Plugin.Misc.HelloWorld.Edit",
             new { controller = "HelloWorld", action = "Edit",  }, 
             new { },
             new[] { "Nop.Plugin.Misc.HelloWorld.Controllers" }
        );
        routes.Remove(route);
        routes.Insert(0, route); 

将Misc.HelloWorld更改为Payment.Plugin的路径, 之后,您可以将以下内容添加到嵌入式源

@Html.Partial("Actionname", item)

有关详细信息,请参阅Alex Wolf

的博客