如何在nopCommerce v2.20的插件中创建EditorTemplate

时间:2011-10-24 16:07:03

标签: asp.net-mvc asp.net-mvc-3 razor nopcommerce

我正在尝试为nopCommerce v2.20创建一个插件,允许用户通过描述要求并附上任何相关文档来请求商品和服务的报价。

我已经开始使用http://blog.csharpwebdeveloper.com/2011/09/10/writing-a-plugin-for-nopcommerce-2-x/作为指导,到目前为止这已经非常好了。我的项目几乎与博客文章中的项目相同,所以我只会添加代码片段,因为我认为它们是必需的,所以如果我遗漏了任何重要内容,请让我扩展并提供详细信息。

现在我想添加一个工具来使用uploadify上传多个文件,并根据现有代码决定我应该为附件创建一个EditorTemplate。

我的问题是,当我使用以下代码行获取模板时,我无法解决如何以MVC框架可以找到的方式设置模板。

@Html.EditorFor(m => m.Attachment)

在我的模型中,我使用Attachment属性上的UIHintAttribute(“Attachments”)来识别模板,但没有明显的效果。

我在“Views”文件夹下创建了一个名为“EditorTemplates”的文件夹,并添加了一个名为“Attachments.cshtml”的文件,其中构建操作设置为“Embedded Resource”,内容如下:

@model int
@using Nop.Core;
@{
    var randomNumber = CommonHelper.GenerateRandomInteger();
    var clientId = "download" + randomNumber;
    var downloadService = EngineContext.Current.Resolve();
    var download = downloadService.GetDownloadById(Model);
}
<div>This is a download control @string.Format("randomNumber = {0}, clientId = {1}, download = {2}", randomNumber, clientId, download);</div>

一旦我能够获得MVC框架来解析它的位置,我打算实现模板。

因此可以在插件中创建一个编辑器模板(来自主项目的单独的类库),如果是这样,我需要做些什么来启用MVC框架来解析我的模板位置?

我还想补充一点,我对MVC,Razor和nopCommerce都很陌生,如果我错过了一些明显的事情,请提前抱歉。

作为一方,你能否为我的问题建议一个更好的标题,因为stackoverflow告诉我它似乎是主观的?

感谢

1 个答案:

答案 0 :(得分:2)

如果您尝试提供没有预编译的编辑器模板(这可能是进入某些更高级方案之前的最佳方法),您需要将BuildAction设置为“Content” - 而不是“EmbeddedResource”。< / p>

另外,请确保您的编辑器模板位于以下目录结构之一(您提到它位于“视图”下面,这是不正确的):

  • /查看/ {ControllerName} /EditorTemplates/Attachments.cshtml
  • /Views/Shared/EditorTemplates/Attachments.cshtml
  • /地区/ {AREANAME} /查看/ {ControllerName} /EditorTemplates/Attachments.cshtml
  • /地区/ {AREANAME} /Views/Shared/EditorTemplates/Attachments.cshtml

如果您确实希望将模板嵌入到单独的库中,我建议您查看at this post from Chris Van De Steeg