Obsługa nieprawidłowego adresu URL w MVC

Jak obsłużyć nieprawidłowe adresy URL w MVC?

Dla ex.: Gdy użytkownik wprowadzi http://localhost/User/MyProfile zamiast http://localhost/User/Profile , wyrzuci wyjątek.

Jak obsłużyć to żądanie?

Author: Prasad, 2009-05-24

3 answers

Najpierw musisz dodać niestandardowy adres URL strony błędu w Internecie.config:

<customErrors mode="On" defaultRedirect="~/Error/404" />  

I dodaj kontroler do obsługi nieprawidłowych adresów URL:

public class ErrorController:Controller
    {
        [ActionName("404")]
        public ActionResult Error404()
        {
            return View("Error");
        }
    }

I jeśli chcesz przekierować użytkownika na stronę główną, nie potrzebujesz kontrolera błędów, tylko zmodyfikuj niestandardowy znacznik błędu:

<customErrors mode="On" defaultRedirect="~/Home/Index" />  
 12
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-24 11:46:18

Miałeś to na myśli?

// Show a 404 error page for anything else.
    routes.MapRoute("Error", "{*url}",
    new { controller = "Error", action = "404" }
);
 1
Author: Arnis Lapsa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-24 11:11:59

Myślę, że każde żądanie powinno być przekierowane do kontrolera przedniego, więc zawiń kod wewnątrz bloku try/catch, który przechwyci wyjątek, a może Możesz przekierować na stronę główną w bloku catch lub po prostu podnieść błąd 404 z obsługą wyjątku.

Jaki jest twój język serwera ?

 0
Author: Christophe Eblé,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-24 11:05:56