相关疑难解决方法(0)

如何在ASP.NET MVC中正确处理404?

我正在使用RC2

使用URL路由:

routes.MapRoute(
    "Error",
     "{*url}",
     new { controller = "Errors", action = "NotFound" }  // 404s
);
Run Code Online (Sandbox Code Playgroud)

以上似乎照顾这样的请求(假设默认路由表由初始MVC项目设置):"/ blah/blah/blah/blah"

覆盖控制器本身中的HandleUnknownAction():

// 404s - handle here (bad action requested
protected override void HandleUnknownAction(string actionName) {
    ViewData["actionName"] = actionName;
    View("NotFound").ExecuteResult(this.ControllerContext);
}  
Run Code Online (Sandbox Code Playgroud)

但是,之前的策略不处理对Bad/Unknown控制器的请求.例如,我没有"/ IDoNotExist",如果我请求这个,我从Web服务器获取通用404页面而不是我的404,如果我使用路由+覆盖.

最后,我的问题是: 有没有办法在MVC框架中使用路由或其他东西来捕获这种类型的请求?

或者我应该默认使用Web.Config customErrors作为我的404处理程序并忘记所有这些?我假设如果我使用customErrors,由于Web.Config对直接访问的限制,我必须在/ Views之外存储通用404页面.

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

426
推荐指数
9
解决办法
13万
查看次数

当用户未经过身份验证时,您如何处理ajax请求?

当用户未经过身份验证时,您如何处理ajax请求?

有人进入页面,离开房间一小时,返回,在使用jQuery($.post)的ajax页面上添加评论.由于未经过身份验证,因此方法返回RedirectToRoute结果(重定向到登录页面).你用它做什么?你如何在客户端处理它,你如何在控制器中处理它?

asp.net authentication ajax asp.net-mvc

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

MVC中的错误处理

我在MVC中使用错误处理已经困难了几天.我仍然没有做对.(我也在这里阅读了大部分问题并用Google搜索,直到我的手指流血)

我想做的事:

  1. 使用标准[Authorize]属性
  2. 将所有错误重定向到我的错误控制器(包括未经授权)
  3. 在我的错误控制器中每个HTTP错误都有一个操作.

我不想做的事:

  1. 放上[ErrorHandler]我的所有控制器(它可以在我的基础控制器上使用)吗?
  2. 使用自定义Authorize属性.

实际上,只要我让#1-3工作,我就可以做任何必要的事情(包括NOT列表).

我尝试过的:

  1. 运用 Application_Error
  2. 运用 Controller.HandleUnknownAction
  3. 运用 Controller.OnException
  4. 使用[ErrorHandler]我的控制器
  5. CustomErrors在web.config中打开/关闭

猜猜我需要这些或其他东西的组合?

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

5
推荐指数
1
解决办法
3847
查看次数