尽管我设置了CustomError="On",但自定义错误页面仍未显示。

14 浏览
0 Comments

尽管我设置了CustomError="On",但自定义错误页面仍未显示。

我正在使用Visual Studio 2012和MVC 4框架,并希望在未处理异常时能够看到共享文件夹的友好错误页面。(我知道作为开发者,我需要查看错误详情,但我只是想测试这个设置)

目前我知道,在web.config文件的system.web部分添加以下代码应该可以解决问题:

但不幸的是,我没有看到友好的错误页面,而是看到了以下内容:

在'/'应用程序中的服务器错误。

运行时错误:服务器上发生应用程序错误。当前应用程序的自定义错误设置阻止查看应用程序错误的详细信息。

详细信息:为了使本地服务器上的特定错误消息的详细信息可查看,请在当前Web应用程序的根目录中的“web.config”配置文件中创建一个标记。然后,该标记的“mode”属性应设置为“RemoteOnly”。要使详细信息在远程机器上可查看,请将“mode”设置为“Off”。


 
     
         
       

注意:通过修改应用程序的标记的“defaultRedirect”属性,可以将当前看到的错误页面替换为自定义错误页面URL。


 
     
         
      

我希望按照上述描述的方法进行操作,而不是通过在HomeController中添加一个操作、设置路由或其他方法来解决。

参考链接表明这应该能起作用:

http://pluralsight.com/training/players/PSODPlayer?author=scott-allen&name=mvc3-building-controllers&mode=live&clip=0&course=aspdotnet-mvc3-intro

(在左侧选择章节“Action Filters”,然后跳至3分30秒)

更新(链接已更改):

http://pluralsight.com/training/Player?author=scott-allen&name=mvc4-building-m2-controllers&mode=live&clip=0&course=mvc4-building

(在顶部点击标有“Controller in ASP.NET MVC 4”的细线,然后点击“Action Filters”,跳至5分处)

有人知道为什么我无法通过上述设置看到友好的错误页面吗?提前感谢!

0
0 Comments

Custom Error Page does not show even though I set CustomError="On"

有时候,即使我设置了CustomError="On",自定义错误页面也不会显示。造成这种情况的一个原因可能是:在渲染'Error.cshtml'时,_layout中的某些内容引发了异常。为了解决这个问题,你可以在'Error.cshtml'文件中添加以下代码进行测试:

@{

Layout = null;

}

这样做可以将_layout的布局文件设置为null,避免在渲染错误页面时引发异常。

0
0 Comments

问题出现的原因是设置了CustomError属性为"On",但自定义错误页面仍未显示。解决方法是确保Web.config文件中的CustomErrors节点的mode属性设置为"On",并且在Views文件夹的Shared文件夹中创建一个名为Error.cshtml的视图,并且该视图的模型为System.Web.Mvc.HandleErrorInfo。另外,还要确保没有多个不同的Error.cshtml页面存在于不同的视图文件夹中。如果问题仍然存在,可以参考stackoverflow上的回答,检查是否编辑了正确的web.config文件。

0
0 Comments

问题原因:_Layout.cshtml页面与基础视图模型强类型绑定,而HandleErrorInfo无法转换为该基础视图模型。

解决方法:将_Layout.cshtml页面与基础视图模型解除绑定即可。

0