Note: Dưới đây chỉ là một bản demo loại nhỏ để mô phỏng những gì tôi đang tìm kiếm:Chuyển tới một bộ điều khiển + hành động mà không thay đổi URL trong ASP.Net MVC3
Dưới đây là các định dạng url trên ứng dụng của tôi mà người dùng có thể thấy
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
tôi đã duy trì một hệ thống mà không có 2 con vật (có thể của loại hình khác nhau) có thể có cùng id, nó có nghĩa là nếu có một con mèo với id = 1, chúng ta không thể có bất kỳ động vật khác với id đó . Cũng từ hệ thống của tôi tôi có thể trích xuất các chi tiết động vật + gõ chỉ từ id vật
Ngoài mẫu URL hiện tại, tôi đang lên kế hoạch để tạo ra một Url ngắn ở định dạng như dưới đây
mydomain.com/1 --this will show cat
mydomain.com/2 --this will show dog
mydomain.com/3 --this will show cow
đường tôi đã tạo ra như dưới đây , và chúng xuất hiện cùng một trật tự trong 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
Hiện nay điều khiển trông như thế này
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 });
-----------------------------------------------
}
}
Bây giờ, vấn đề với RedirectToRoute
/RedirectToAction
là cả hai đều thay đổi URL. Nhưng tôi không muốn thay đổi mẫu url của mình.
Xin gợi ý cho tôi làm thế nào để đạt được điều này, bạn có thể gợi ý một số cách hoàn toàn khác nhau, để đạt được điều này
tôi thực sự đã tạo một RouteHandler, nhưng "rd.Values [" controller "]", rd.GetRequiredString -> cách sửa đổi và nhận dữ liệu tuyến đường đã giúp rất nhiều, và tôi chỉ tìm kiếm điều này. CẢM ƠN. –