Перенаправление на другой контроллер + действие без изменения URL-адреса в ASP.Net MVC3

Примечание : Ниже приведена небольшая демонстрация сортировки имитировать то, что я ищу:

Ниже приведен формат URL-адресов в моем приложении, который может видеть пользователь.

mydomain.com/cat/1  --display cat with id 1 |controller=Cat, action=DisplayDetails
mydomain.com/dog/2  --display dog with id 2 |controller=Dog, action=DisplayDetails
mydomain.com/cow/2 --display cow with id 3  |controller=Cow, action=DisplayDetails

Я поддерживал систему, в которой никакие 2 животных (могут быть разных видов) не могут иметь одинаковый идентификатор, это означает, что если есть кошка с id = 1, у нас не может быть другого животного с этим id. Также из моей системы я могу извлекать сведения о животных + тип только из идентификатора животного

Помимо существующего шаблона URL, я планирую создать короткий URL в формате, как показано ниже

mydomain.com/1  --this will show cat
mydomain.com/2  --this will show dog
mydomain.com/3  --this will show cow

Маршруты, которые я создал, выглядят так, как показано ниже, и они выглядят одинаково порядок в global.asax

pattern= Cat/{id}, controller= Cat, action=DisplayDetails
pattern= Dog/{id}, controller= Dog, action=DisplayDetails
pattern= Cow/{id}, controller= Cow, action=DisplayDetails
pattern= {id}, controller= DisplayAnyAnimal ----------i want help in this Route

В настоящее время контроллер выглядит следующим образом

public class DisplayAnyAnimalContoller : Controller
{
      public ActionResult Index(string animalId)
      {
           //iam processing request here from animalId
           //now i know which contoller+action needs to be executed

          //say for instant i have to display dog with id=2

          //currently iam doing this to redirect and its working fine, 
          //but it changes url
          -----------------------------------------------
          #########################
          ### i need help here  ###       
          #########################
         return RedirectToRoute(new {contoller="Dog",action="DisplayDetails",id=2 });             
          -----------------------------------------------
      }
}

Теперь проблема с RedirectToRoute / RedirectToAction в том, что они оба изменяют URL. Но я не хочу менять свой шаблон URL.

Пожалуйста, предложите мне, как этого добиться, вы можете предложить совершенно другой способ достижения этого

6
задан Praveen Prasad 10 July 2011 в 09:30
поделиться