2012-04-26 1 views
1

Я новичок в asp.net mvc3. Я создаю свой сайт, на котором я столкнулся с проблемой, что у меня есть контроллер с именем Home и метод в нем с именем Index, и этот метод индекса принимает идентификатор параметра теперь, согласно этой ситуации, действительный URL должен быть таким, как это "http: // www. counterexample.com/Home/Index/1 ", но что мне делать, если пользователь вводит такой URL-адрес " http://counterexample.com/whatsisthis ". Он определенно даст ошибку 404, но я хочу сделать это, когда кто-либо набирает такой URL, он должен быть перенаправлен на мой другой контроллер с именем Thunder по методу ErrorDetails, и все символы, которые пользователь вводит в url после/должны прийти к этому методу, как параметр как следующийОтправить любой неверный URL-адрес или любой URL-адрес, который не существует для пользовательского контроллера в asp.net mvc3?

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

} 

Пожалуйста, обратите внимание, что пользователь может ввести любой URL, как

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

Я хочу, чтобы весь этот URL-адрес или любой URL-адрес не был перенаправлен на мой метод «ErrorDetails». Благодаря

ответ

0

Использование custom errors (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> 
+0

Я хочу к этому от global.asax. – Ahsan

+0

взгляните на этот ответ http://stackoverflow.com/questions/717628/asp-net-mvc-404-error-handling/9026907#9026907 – robasta

1

Вы можете установить пользовательские ошибки в файле web.config.

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

После 404 ошибка была брошена, пользователь будет перенаправлен на взгляд ErrorDetails.

+0

ваш ответ может решить мою проблему, но я хочу сделать это путем маршрутизации в global.asax – Ahsan