Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如何在DotNetNuke模块中加入404_C# 4.0_Dotnetnuke_Dotnetnuke Module_Dotnetnuke 6 - Fatal编程技术网

C# 4.0 如何在DotNetNuke模块中加入404

C# 4.0 如何在DotNetNuke模块中加入404,c#-4.0,dotnetnuke,dotnetnuke-module,dotnetnuke-6,C# 4.0,Dotnetnuke,Dotnetnuke Module,Dotnetnuke 6,我想从我的模块中抛出一个404 file not found异常,但每个异常都被DNN捕获,并且不显示我的404.aspx页面(仅显示DNN中的错误页面) 在我的web.config中,我添加了: <httpErrors errorMode="Custom" defaultResponseMode="File"> <remove statusCode="404" /> <error statusCode="404" prefixLanguageFilePat

我想从我的模块中抛出一个404 file not found异常,但每个异常都被DNN捕获,并且不显示我的404.aspx页面(仅显示DNN中的错误页面)

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

<httpErrors errorMode="Custom" defaultResponseMode="File">
  <remove statusCode="404" />
  <error statusCode="404" prefixLanguageFilePath="" path="/404.aspx" responseMode="ExecuteURL" />
</httpErrors>
只要这样做:

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

也许你需要先弄清楚答案

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

DNN的简单解决方案

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

我很难理解为什么你想让模块抛出404?该模块是否专门设计为页面上唯一的内容?是的。我正在为我的网站开发一个模块,当一个用户做了一些奇怪的事情时,我只想显示一个404(这是我的404页面)。试过了,没用。DNN显然覆盖了这一点,但不做任何处理。这段代码确实有效,但它取决于它发生的上下文。在页面的正常get请求中,这将导致404,但是如果发生这种情况(比如在ajax回发中的按钮单击事件中),404仍将从服务器返回,但是updatepanel将有效地忽略404,并且看起来用户好像什么都没发生过。我已经尝试了这段代码。我的上下文是在页面加载中检查一些条件。如果他们不匹配,我想投404。谢谢。这是目前为止最好的答案。
Response.Clear();
Response.StatusCode = 404;
Response.End(); 
TabInfo errorPage404 = new TabController().GetTabByName("404 Error Page", this.PortalId);
Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(errorPage404.TabID));