Tôi có một mặc định C# tuyến MVC:C# MVC định tuyến - nhiều tuyến đường
routes.MapRoute(
"Default",
"{controller}/{action}/{id}"
new { controller = "Home", action = "Index", id = "Welcome" }
);
Bây giờ tôi sẽ nhận được các url như:
mysite.com/Home/Index/Page1
mysite.com/Home/Index/Page2
mysite.com/Home/Index/Page3
mysite.com/Account/Login
mysite.com/Account/Etc
Nhưng tôi muốn có tập đầu tiên với một ngắn hơn url như:
mysite.com/Page1
mysite.com/Page2
mysite.com/Page3
mysite.com/Account/Login
mysite.com/Account/Etc
tôi mong đợi mã để được thực sự đơn giản như:
routes.MapRoute(
"Shorturl",
"{id}",
new { controller = "Home", action = "Index", id = "Welcome" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}"
new { controller = "Home", action = "Index", id = "Welcome" }
);
Nhưng điều đó không hiệu quả. Nó sẽ chỉ đi theo con đường đầu tiên và quên đi con đường thứ hai. Làm cách nào bạn có thể làm cho chương trình của mình thực hiện tuyến đường đầu tiên khi chỉ có một thông số (như mysite.com/Page1) và thực hiện tuyến đường thứ hai khi bạn có nhiều tuyến đường (như mysite.com/Account/Login)?
Edit: tôi có thể làm:
routes.MapRoute("Short", "short/{id}", new { controller = "Home", action = "Indx", id = "Page1" });
Nhưng sau đó tôi sẽ có một xấu xí "ngắn /" trong url. tôi có thể sửa chữa nó với:
routes.MapRoute("Page1", "Page1", new { controller = "Home", action = "Index", id = "Page1" });
Nhưng sau đó tôi cần thêm mỗi trang mới bằng tay ...
http://stackoverflow.com/questions/2975642/routing-in-asp-net-mvc-2-0 – CodeCaster