我正在努力在nopcommerce上写一个新的付款插件。
如何在PaymentInfo.cshtml中呈现新的部分视图?新视图使用PaymentInfo.cshtml找到相同的路径。
答案 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
的博客