我在我的Sitecore模板中使用iFrame作为字段类型。在iFrame字段的source字段中,我提到了我的Controller操作的路由。
FieldType: IFrame
来源: files = dir('*.mat');
for file = 1:files
mat = load(files(file).name);
% Do some stuff
%Conten = who;
F_current=files(file).name
F_name = strcat(a1(1:end-3),'txt')
save(F_name, Conten{:}, '-ascii')
end
在routeconfig.cs文件中,我将路由配置为
public class Home
{
public int i;
[Required(ErrorMessage="Please enter")]
[StringLength(160)]
public string name;
}
然后我创建上述模板类型的内容项。当我检查iFrame字段时,我看到控制器未被调用,我看到错误为“未找到所请求的文档”,附件如下信息:
请求的URL:/ mvc / modules / products / getList
用户名:sitecore \ admin
网站名称:网站
路由如何不重定向到控制器操作。还有什么可以配置或我在某处做错了吗?提前谢谢!
注意:我正在使用Sitecore 8.1和MVC。另外,我不能在这里使用.aspx文件而不是控制器。
答案 0 :(得分:0)
看起来Sitecore正在拿起网址并对其进行处理,但由于您没有为该网址设置Sitecore项目,因此会给您404错误。
您有两个选择:
IgnoreUrlPrefixes
设置: <setting name="IgnoreUrlPrefixes" value="/mvc/modules/|... all original values ..."/>
两种选择都有利弊。对于选项1,缺点是您不会使用Sitecore上下文,这可能是也可能不是问题,具体取决于您的代码。从好的方面来说,你不能打破&#34;打破&#34;在内容编辑器中弄乱了一些内容。
选项2的优势在于它可以像其他Sitecore页面一样工作,您可以利用Sitecore的输出缓存来提高性能,并且演示文稿的更改不必基于代码。在缺点方面,您将依赖于项目结构,因此您必须确保正确设置安全性以防止对其进行不必要的更改。
总的来说,我认为对于渲染的Html输出,选项2通常是我喜欢的方式,因为它为您提供了更多的灵活性。但这两种选择都很有效。
如果你选择选项1,这篇文章提供了另一种修补忽略列表的方法:http://www.awareweb.com/awareblog/12-14-15-patchableignorelist