Bạn không thể có nhiều tên cho cùng một hành động. Nó sẽ là những hành động khác nhau. Đây là cách mvc hoạt động. Mabe tốt hơn là nên thực hiện hành vi được mô tả bằng định tuyến.
routes.MapRoute("Lang1RouteToController1Action1",
"Lang1Controller/Lang1Action/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute("Lang2RouteToController1Action1",
"Lang2Controller/Lang2Action/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Ofcourse bạn sẽ phải tạo nhiều tuyến, nhưng bạn có thể tạo tệp cấu hình hoặc lưu trữ dữ liệu định tuyến trong cơ sở dữ liệu và chỉ tạo chúng khi bắt đầu ứng dụng. Dù sao tôi nghĩ rằng nó tốt hơn sau đó tạo ra planty của phương pháp, bởi vì nếu bạn sẽ muốn thêm một ngôn ngữ nhiều hơn bạn sẽ cần phải tìm thấy hành động trên tất cả các bộ điều khiển của bạn và biên dịch lại mã. Nhưng trong trường hợp các tuyến đường và tập tin cấu hình - nó trở nên không quá khó. Điều thứ hai là phần mở rộng Html.ActionLink ("Home", "Index", "Home") - bạn sẽ phải triển khai thực hiện của riêng bạn để trả về liên kết hành động được bản địa hóa.
Nguồn
2010-04-26 07:55:35
Bạn không thể đặt Thread.CurrentThread.CurrentCulture, Thread.CurrentThread.CurrentUICulture thay thế? http://msdn.microsoft.com/en-us/library/bz9tc508.aspx –