将任何无效 URL 或任何不存在的 URL 发送到 asp.net mvc3 中的自定义控制器

本文关键字:URL 任何 mvc3 net 自定义 控制器 asp 无效 不存在 | 更新日期: 2023-09-27 18:32:13

我是 asp.net MVC3 的新手。 我正在构建我的网站,其中我遇到了一个问题,我有一个名为 Home 的控制器和一个名为 Index 的方法,并且此索引方法现在根据这种情况采用参数 ID,有效的 URL 应如下所示"http://www。counterexample.com/Home/Index/1"但是如果用户键入像这样的 URL "http://counterexample.com/whatsisthis",我该怎么办。它肯定会给出404错误,但我想这样做,当任何人键入这样的 URL 时,他应该被重定向到我在方法 ErrorDetails 上名为 Thunder 的另一个控制器,以及用户在 url 之后键入的所有字符/应该作为参数来到此方法,如下所示

 public class ThunderController : Controller
{
    public ActionResult ErrorDetails (string id)
    {
        var params = id ; // and the text "whatisthis" should store in param . 
        return View();
    }
}

请注意,用户可以输入任何网址,例如

  1. http://counterexample.com/whatsisthis/this
  2. http://counterexample.com/whatsisthis/this/call

我希望所有这些 URL 或任何不存在的 URL 都应该重定向到我的方法"错误详细信息"。谢谢

将任何无效 URL 或任何不存在的 URL 发送到 asp.net mvc3 中的自定义控制器

您可以在 web.config 文件上设置自定义错误。

<customErrors mode="RemoteOnly" >
   <error statusCode="404" redirect="/Thunder/ErrorDetails/" />
 </customErrors> 

引发 404 错误后,用户将被重定向到"错误详细信息"视图。

像这样使用自定义错误 (web.config):

<customErrors mode="On" >
   <error statusCode="404" redirect="/Thunder/ErrorDetails/" />
   <!-- You can add other error codes or a generic one for other status codes here -->
</customErrors>