Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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
在ASP.net中的自定义错误页中返回请求的URL_Asp.net_Custom Error Pages - Fatal编程技术网

在ASP.net中的自定义错误页中返回请求的URL

在ASP.net中的自定义错误页中返回请求的URL,asp.net,custom-error-pages,Asp.net,Custom Error Pages,在ASP.NET3.5和MVC1.0中工作 我想做的是在自定义错误页面中返回请求的URL,该URL会生成404错误。就像谷歌在错误页面上做的一样 例如 很抱歉,此服务器上不存在请求的地址 实现这种软404的最佳方式是什么 另外,作为旁注:熟悉在浏览器地址栏中保留请求的URL的同时,返回自定义错误页面来代替丑陋的…notfound?aspxerrorpath=/awdawd胡说八道的人。。。我怀疑与服务器有关。传输?查看与此主题相关的资源: 总之,您可以通过定义一个执行特定控制器操作的全包路由来保

在ASP.NET3.5和MVC1.0中工作

我想做的是在自定义错误页面中返回请求的URL,该URL会生成404错误。就像谷歌在错误页面上做的一样

例如

很抱歉,此服务器上不存在请求的地址

实现这种软404的最佳方式是什么


另外,作为旁注:熟悉在浏览器地址栏中保留请求的URL的同时,返回自定义错误页面来代替丑陋的…notfound?aspxerrorpath=/awdawd胡说八道的人。。。我怀疑与服务器有关。传输?

查看与此主题相关的资源:

总之,您可以通过定义一个执行特定控制器操作的全包路由来保持请求的URL,从而实现类似google的实现

//defined below all other routes
routes.MapRoute(
    "Catch All",
    "{*path}", 
    new { controller = "Error", action = "NotFound" }
);

public ActionResult NotFound(string path)
{
    Response.StatusCode = (int)HttpStatusCode.NotFound;
    ViewData["path"] = path; //or Request.Url.ToString() if you want full url
    return View();
}

不过,这并不是一个完整的解决方案。假设您已经离开了默认的路由映射,任何与{Controller}/{action}/{id}匹配的东西仍然会抛出传统的404或自定义错误。如果您真的想让“全包”路由接收到任何未映射到特定控制器/操作或参数类型的内容,那么您必须明确定义所有可能的路由—这不一定是一项琐碎的任务。

查看与此主题相关的这些资源:

总之,您可以通过定义一个执行特定控制器操作的全包路由来保持请求的URL,从而实现类似google的实现

//defined below all other routes
routes.MapRoute(
    "Catch All",
    "{*path}", 
    new { controller = "Error", action = "NotFound" }
);

public ActionResult NotFound(string path)
{
    Response.StatusCode = (int)HttpStatusCode.NotFound;
    ViewData["path"] = path; //or Request.Url.ToString() if you want full url
    return View();
}
不过,这并不是一个完整的解决方案。假设您已经离开了默认的路由映射,任何与{Controller}/{action}/{id}匹配的东西仍然会抛出传统的404或自定义错误。如果您真的想让“一网打尽”的路由获取任何没有映射到特定控制器/操作或参数类型的内容,那么您必须显式地定义所有可能的路由——这不一定是一项简单的任务