我正在尝试为 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”的文件,并将构建操作设置为“嵌入式资源”,内容如下:
@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 告诉我它看起来很主观?
谢谢
最佳答案
如果您尝试提供没有预编译的编辑器模板(这可能是进入一些更高级场景之前的最佳方法),您将需要将 BuildAction 设置为“Content”,而不是“EmbeddedResource”。
此外,请确保您的编辑器模板位于以下目录结构之一(您提到它位于“ View ”下,这是不正确的):
- /Views/{ControllerName}/EditorTemplates/Attachments.cshtml
- /Views/Shared/EditorTemplates/Attachments.cshtml
- /Areas/{AreaName}/Views/{ControllerName}/EditorTemplates/Attachments.cshtml
- /Areas/{AreaName}/Views/Shared/EditorTemplates/Attachments.cshtml
如果您确实想将模板作为单独库的一部分嵌入,我建议您查看 at this post from Chris Van De Steeg .
关于asp.net-mvc - 如何在 nopCommerce v2.20 插件中创建 EditorTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7878550/