如何在DotNetNuke模块中抛出404

时间:2012-03-13 16:52:41

标签: c#-4.0 dotnetnuke dotnetnuke-module dotnetnuke-6

我想从我的模块中抛出一个404文件未找到异常,但每个异常都被DNN捕获,并且没有显示我的404.aspx页面(只有DNN的错误页面)。

在我的web.config中,我添加了:

<httpErrors errorMode="Custom" defaultResponseMode="File">
  <remove statusCode="404" />
  <error statusCode="404" prefixLanguageFilePath="" path="/404.aspx" responseMode="ExecuteURL" />
</httpErrors>

&安培;

<customErrors mode="On">
  <error statusCode="404" redirect="~/404.aspx" />
</customErrors>

打开不存在的页面时,哪项工作很棒。但是尝试用我的模块做同样的事情并没有给我相同的结果......

我尝试了以下但没有成功:

throw new HttpException(404, "Not Found");

3 个答案:

答案 0 :(得分:2)

这样做:

Response.StatusCode = 404;
Response.End(); 

答案 1 :(得分:0)

也许您需要先清除回复?

Response.Clear();
Response.StatusCode = 404;
Response.End(); 

答案 2 :(得分:0)

DNN的简单解决方案

TabInfo errorPage404 = new TabController().GetTabByName("404 Error Page", this.PortalId);
Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(errorPage404.TabID));