我是Orchard CMS的新手。如果有任何错误,我需要向管理员创建电子邮件通知。我制作了一个自定义模块,因此它会向管理员发送一封电子邮件。此外,我已从错误页面重定向到模块。
这是我自定义主题
中NotFound.cshtml
的代码
<script type="text/javascript" language="javascript">
function ToError() {
window.location.href = '/FourOFour?LastURL=' +
(window.location.host + window.location.pathname);
}
window.onload = ToError;
</script>
这是我创建的模块中的自定义路线
new RouteDescriptor {
Priority = 11,
Route = new Route(
"FourOFour",
new RouteValueDictionary {
{"area", "Prenagen.ErrorEmailing"},
{"controller","Utama"},
{"action","Error404"}
},
new RouteValueDictionary(),
new RouteValueDictionary{
{"area", "Prenagen.ErrorEmailing"}
},
new MvcRouteHandler())
}
因此未找到的页面将重定向到/FourOFour
。当我在localhost中测试它时,一切正常。我键入了一个不存在的页面,然后重定向到NotFound
然后再转到/FourOFour?LastURL=page
。电子邮件将发送给管理员。当我将其发布到服务器时,未找到重定向到FourOFour,但找不到该页面。我怎么解决这个问题?拜托,有人帮助我。
编辑:它会创建一个无限循环,因为找不到FourOFour
并且它会一直重定向到同一页面。
答案 0 :(得分:1)
您的动态编辑是否已禁用?
如果是,并且您只复制了您已更改的文件,则可能是您遇到问题的原因。
可能导致问题的另一个原因是,您所做的更改需要创建添加到项目中的新文件。如果是这种情况,您还应该将.csproj文件复制到服务器,以指示Orchard在动态编译中包含新添加的文件。
尝试在发布模式下重建模块并将整个模块复制到服务器而不是只复制您已更改的文件,看看是否有效..