相关疑难解决方法(0)

ASP.NET MVC 404错误处理

可能重复:
如何在ASP.NET MVC中正确处理404?

我已经在Asp.Net MVC(RC 5)中的404 Http错误处理程序中进行了更改,我仍然得到标准的404错误页面.我需要在IIS中更改某些内容吗?

error-handling asp.net-mvc

129
推荐指数
3
解决办法
14万
查看次数

自定义ASP.NET MVC 404错误页面的路由

当有人键入不调用ASP.NET MVC中的有效操作或控制器的URL而不显示通用的"未找到资源"ASP.NET错误时,我试图创建自定义HTTP 404错误页面.

我不想使用web.config来处理这个问题.

是否有任何类型的路由魔法可以捕获任何无效的URL?

更新:我尝试了给出的答案,但我仍然得到丑陋的"资源未找到"消息.

另一个更新:好的,显然RC1中发生了一些变化.我甚至尝试过专门捕获404 HttpException,它仍然只是给了我"资源未找到"页面.

我甚至使用过MvcContrib的资源功能,没有 - 同样的问题.有任何想法吗?

asp.net asp.net-mvc custom-error-pages asp.net-mvc-routing http-status-code-404

116
推荐指数
7
解决办法
15万
查看次数

ASP.NET自定义404返回200 OK而不是404 Not Found

在尝试为Google网站站长工具设置我的网站后,我发现我的自定义ASP.NET 404页面未返回404状态代码.它显示了正确的自定义页面并告诉浏览器一切正常.这被认为是软404或假404.谷歌不喜欢这个.所以我发现了很多关于这个问题的文章,但我想要的解决方案似乎没有用.

我想要解决的解决方案是将以下两行添加到自定义404页面的Page_Load方法后面的代码中.

Response.Status = "404 Not Found";
Response.StatusCode = 404;
Run Code Online (Sandbox Code Playgroud)

这不起作用.页面仍然返回200 OK.然而,我发现如果我将以下代码硬编码到设计代码中,它将正常工作.

<asp:Content ID="ContentMain" ContentPlaceHolderID="ContentPlaceHolderMaster" runat="server">

<%
    Response.Status = "404 Not Found";
    Response.StatusCode = 404;
%>

 ... Much more code ...

</asp:content>
Run Code Online (Sandbox Code Playgroud)

该页面正在使用母版页.我正在我的web.config中配置自定义错误页面.我真的宁愿使用后面的代码选项但我似乎无法在设计/布局中放入黑客内联代码使其工作.

c# asp.net master-pages custom-errors http-status-code-404

79
推荐指数
5
解决办法
8万
查看次数

ASP.NET MVC - 捕获所有路由和默认路由

在尝试让我的应用程序正确生成404错误时,我在路由表的末尾实现了catch all route,如下所示:

 routes.MapRoute(
            "NotFound", _
           "{*url}", _
           New With {.controller = "Error", .action = "PageNotFound"} _
       )
Run Code Online (Sandbox Code Playgroud)

但是,为了使这个工作,我不得不删除默认路由:

{controller}/action/{id}
Run Code Online (Sandbox Code Playgroud)

但是现在已经删除了默认设置,我的大部分操作链接都不再有效,而我找到让它们再次工作的唯一方法是为每个控制器/操作添加单独的路由.

是否有更简单的方法,而不是为每个控制器/操作添加路由?

是否可以创建一个默认路由,如果用户尝试导航到未知路由,仍然允许捕获所有路由?

asp.net-mvc asp.net-mvc-2

70
推荐指数
3
解决办法
6万
查看次数

如何捕获所有路由来处理ASP.NET MVC的'404 page not found'查询?

是否有可能创建一个捕获所有的最终路由...并将用户弹回到ASP.NET MVC中的404视图?

注意:我不想在我的IIS设置中进行此设置.

asp.net-mvc routes http-status-code-404

49
推荐指数
3
解决办法
9万
查看次数

如何在ASP.Net MVC 3中返回HttpNotFound()的视图?

每次从控制器返回HttpNotFoundResult时,有没有办法返回相同的视图?你如何指定这个视图?我猜测在web.config中配置404页面可能有效,但我想知道是否有更好的方法来处理这个结果.

编辑/跟进:

我最后使用了这个问题的第二个答案中找到的解决方案,并对ASP.Net MVC 3进行了一些微调,以处理我的404:如何正确处理ASP.Net MVC中的404?

asp.net asp.net-mvc-3

40
推荐指数
3
解决办法
3万
查看次数

asp.net mvc 3中的错误处理

是否有内置或正确的方法来处理asp.net mvc 3中的错误?

这就是我想要做的:

  1. 如果应用程序崩溃或抛出错误,它将转到特定的错误页面.
  2. 我可以从控制器操作中抛出自己的错误.(它会进入错误页面).

我找到了以下方法:

  1. 我看到有一个很长的路要走做到这一点 在这里.(对于v1和v2,但也适用于v3).
  2. 在这里使用errorhandle属性.

我该如何正确处理?

如果解决方案类似或类似于上面列表中的#1,我使用ninject并且我还没有创建基类.我怎么做呢?

error-handling asp.net-mvc ninject asp.net-mvc-3

34
推荐指数
2
解决办法
2万
查看次数

ASP.NET MVC错误处理 - 删除aspxerrorpath

我在我的MVC应用程序中正在处理一些错误处理,我想改成asperrorpath一些不会泄露我正在使用.NET的事情...类似于path

任何人都可以给我一些方向来改变它吗?

asp.net error-handling asp.net-mvc

27
推荐指数
2
解决办法
2万
查看次数

Asp.Net MVC中的404 Http错误处理程序(RC 5)

如果没有框架抛出异常500错误代码,我怎么能处理404错误?

asp.net-mvc http http-status-code-404

20
推荐指数
2
解决办法
2万
查看次数

ASP.NET MVC用户友好401错误

我在ASP.NET MVC网站实现了错误处理,就像建议这篇文章一样.

404错误一切正常.但如何正确显示用户友好的屏幕401错误?它们通常不会抛出可在内部处理的异常,Application_Error()而是返回HttpUnauthorizedResult.一种可能的方法是将以下代码添加到Application_EndRequest()方法的末尾

if (Context.Response.StatusCode == 401)
{
    throw new HttpException(401, "You are not authorised");
    // or UserFriendlyErrorRedirect(new HttpException(401, "You are not authorised")), witout exception
}
Run Code Online (Sandbox Code Playgroud)

但在Application_EndRequest()Context.Session == null中,errorController.Execute()失败是因为它无法使用默认的TempDataProvider.

  // Call target Controller and pass the routeData.
  IController errorController = new ErrorController();
  errorController.Execute(new RequestContext(    
       new HttpContextWrapper(Context), routeData)); // Additional information: The SessionStateTempDataProvider requires SessionState to be enabled.
Run Code Online (Sandbox Code Playgroud)

那么,您能否建议一些最佳实践如何在ASP.NET MVC应用程序中使用"用户友好句柄"401?

谢谢.

asp.net-mvc handleerror

18
推荐指数
2
解决办法
1万
查看次数