NopCommerce模板通常只包含视图和资源,而不包含代码。 但他们可以吗?
我想从我的观点中引用一个自定义的HtmlHelper。例如,如果我在我的主题中创建此扩展名:
namespace Nop.Theme.Foo.Helpers
{
public static class NopHelpers
{
public static string Test(this HtmlHelper html)
{
return "foo";
}
}
}
我在哪里放置内置的dll?我在视图中如何引用它?以下不工作:
@using Nop.Theme.Foo.Helpers;
...
@Html.Test()
错误是:error: CS0234: The type or namespace name 'Theme' does not exist in the namespace 'Nop' (are you missing an assembly reference?)
。
所以我想我的问题是:
答案 0 :(得分:2)
主题文件夹中的任何dll都将被忽略。您仍然可以在主题项目中构建它们,但是您需要将它们放入Nop.Web/bin
文件夹以便加载它们。
所以:
就像你拥有它一样 - 直接在你的主题项目中创建一个针对HtmlHelper
的扩展方法。
将主题dll移动到Nop.Web/bin
- 即。您网站根目录的bin
目录。
就像你拥有它一样。添加using语句,然后使用帮助程序:
@using Nop.Theme.Foo.Helpers;
...
@Html.Test()
哦,如果你想解决静态帮助器中的某个实例,你可以使用它:
using Nop.Core.Infrastructure;
// ...
var whateverYouWant = EngineContext.Current.Resolve<IWhateverYouWant>();