2013-06-13 25 views
7

Về cơ bản, tôi muốn có cùng chức năng như Url.Action, nhưng bên ngoài bộ điều khiển. Điều này có thể không?Nhận URL hành động bên trong lớp MVC4 .NET

Trong khi tôi chắc chắn mình sẽ sử dụng ở nơi khác, mong muốn hiện tại của tôi là tạo ra url của hành động bên trong một khung nhìn.

+0

Tạo mở rộng của riêng bạn phương pháp chỉ bằng cách nối các chuỗi lại với nhau .. –

+1

có thể trùng lặp của [Gọi UrlHelper trong các mô hình trong ASP.NET MVC] (http://stackoverflow.com/questions/2031995/call-urlhelper-in-models-in-asp-net- mvc) –

Trả lời

20

Bạn có thể tạo một UrlHelper trong mô hình quan điểm của bạn, như vậy:

UrlHelper helper = new UrlHelper(HttpContext.Current.Request.RequestContext); 

Sau đó, bạn có thể sử dụng giống như một trong những bạn sử dụng theo quan điểm của bạn:

string actionUrl = helper.Action("MyAction", "MyController"); 
+0

Tôi [chỉ đọc ở đây] (http://stackoverflow.com/a/115822 07/1037948) mà bạn muốn tránh sử dụng 'HttpContext.Current' - không chắc chắn nếu điều đó áp dụng ở đây, hoặc thậm chí có thể. – drzaus

+0

@drzaus đây không phải là ASP.NET Web API, vì vậy không, nó không áp dụng ở đây. –

Các vấn đề liên quan