2009-04-18 29 views
6

Tôi có bộ điều khiển có tên "AccountController" và hành động được gọi là "ResetPassword". Từ đánh dấu html, tôi có thể làm điều gì đó như:nhận tuyến đường đến hành động điều khiển (url) theo lập trình

<%= Html.ActionLink("LinkText", "ResetPassword", "AccountController") %> 

và nó sẽ xuất url chính xác. Có cách nào để làm điều này theo chương trình? Tôi đang cố gắng để có được url như là một chuỗi trong lớp khác nhưng System.Web.Mvc.HtmlHelper không có một ActionLink() phương pháp tĩnh và tạo ra một thể hiện của lớp không có nó hoặc. Lưu ý: Nếu tôi cố gắng tạo ra các thể hiện của HtmlHelper hoặc UrlHelper thì tôi cần tham chiếu đến khung nhìn bối cảnh hoặc bối cảnh yêu cầu và tôi không thể tìm ra cách để có được những thứ đó từ bộ điều khiển (để chuyển sang phương thức lớp của tôi).

Trả lời

10

Thay vào đó hãy sử dụng Url.Action.

+0

Khi tôi cố gắng tạo một thể hiện của UrlHelper, nó yêu cầu một "requestContext". Làm cách nào để nhận requestContext để tôi có thể tạo một cá thể UrlHelper? – codette

+0

Nếu bạn đang ở trong một bộ điều khiển, hãy sử dụng thuộc tính HttpContext của bộ điều khiển. –

+0

Tôi đang ở trong một lớp bên ngoài bộ điều khiển và HttpContext.Current sẽ không hoạt động. Tôi nhận được một lỗi cú pháp, đó là loại sai. – codette

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