Tôi đang viết một phương thức trợ giúp cho ASP.NET MVC và tôi cần gọi Url.Content để nhận URL thích hợp cho ngữ cảnh. Tuy nhiên, để tạo một UrlHelper mới(), tôi cần phải lấy RequestContext hiện tại (System.Web.Routing.RequestContext để được chính xác) và tôi không chắc chắn làm thế nào để lấy nó. Có ai biết không?Làm thế nào để bạn có quyền truy cập vào System.Web.Routing.RequestContext hiện tại từ bên trong một phương thức trợ giúp tùy chỉnh trong ASP.NET MVC?
Trả lời
Nhận thấy điều này vẫn chưa được trả lời. Kể từ MVC 1.0, bạn có thể làm:
public static string NewHelperMethod(this HtmlHelper helper)
{
UrlHelper url = new UrlHelper(helper.ViewContext.RequestContext);
Tôi muốn biết làm thế nào để làm điều này từ bộ điều khiển, câu trả lời này đã cho tôi đủ thông tin để tìm ra rằng tôi muốn ControllerContext.RequestContext. – lambacck
Không tạo tài khoản mới. Chỉ cần mở rộng UrlHelper hiện, giống như bạn muốn mở rộng HtmlHelper:
public static string IdLink(this UrlHelper helper, Guid id)
{ //...
Nếu bạn phải sử dụng cả hai HtmlHelper và UrlHelper, vượt qua một trong số họ là một (phi "này") lập luận thông thường.
Như đã đề cập ở trên, chỉ cần mở rộng HtmlHelper và ngữ cảnh được hiển thị theo cách đó. Ví dụ:
public static string ExtensionMethodName(this HtmlHelper html,object o)
{
html.ViewContext.HttpContext.Request.Uri ... etc
}
Bạn có thể tìm thấy câu trả lời ở nơi khác, nhưng ở đây đi;
Trong một hành động điều khiển, bạn có thể tới các RequestContext hiện như sau:
public ActionResult SomeAction(){
var helper = new UrlHelper(this.ControllerContext.RequestContext);
...
}
Nếu IHttpHandler hiện nay là MvcHandler, bạn có thể sử dụng
((MvcHandler)HttpContext.Current.Handler).RequestContext
Đây thực sự là những gì tôi cần ... từ ngữ cảnh thực sự tĩnh – Kevin
Lưu lại ngày của tôi, cảm ơn bạn rất nhiều! –
- 1. Làm thế nào để sử dụng ASP.NET MVC Html Helpers từ một trợ giúp tùy chỉnh?
- 2. Làm cách nào để gọi phương thức trợ giúp Rails từ bên trong một phương thức trợ giúp khác?
- 3. Cần trợ giúp xây dựng Trình trợ giúp Html tùy chỉnh cho Asp.net MVC
- 4. Ủy quyền tùy chỉnh ASP.NET MVC
- 5. Làm thế nào để bạn truy cập RouteData hiện tại từ Xem trong .net MVC?
- 6. Truy cập các thuộc tính từ Trình trợ giúp tùy chỉnh Html trong asp.net mvc 4 dao cạo
- 7. Làm thế nào để bạn đăng ký một trình trợ giúp tùy chỉnh nếu bạn đang biên dịch trước một trình trợ giúp tùy chỉnh trong Handlebars.js?
- 8. Làm cách nào để sử dụng Trình trợ giúp HTML ValidationMessage ASP.NET MVC bên trong trình trợ giúp tùy chỉnh của riêng tôi?
- 9. Ủy quyền tùy chỉnh trong ASP.NET MVC 3
- 10. Trong Grails làm thế nào để truy cập vào phiên ngủ đông bên trong một phương thức tĩnh lớp miền?
- 11. ASP.NET MVC - Nhận tên điều khiển và hành động hiện tại trong trình trợ giúp
- 12. Có thể tạo ra một ASP.NET MVC tùy chỉnh mạnh mẽ đánh máy trợ giúp HTML?
- 13. Làm cách nào để truy cập một phương thức từ một bình bên ngoài khi chạy?
- 14. Truy cập "lớp hiện tại" từ tùy chỉnh WPF MarkupExtension
- 15. Các lớp trợ giúp HTML tùy chỉnh có vi phạm mô hình ASP.NET MVC không?
- 16. Thêm một Trình trợ giúp HTML tùy chỉnh vào Dự án MVC
- 17. Làm thế nào để tạo các trang lỗi 404 tùy chỉnh trong ASP.NET MVC 3?
- 18. Tại sao chữ số không có quyền truy cập vào các phương thức Số?
- 19. Làm thế nào để bạn thực hiện một trợ giúp Handlebars nhận thức được ràng buộc Ember?
- 20. Làm cách nào để bạn truy cập một biến mẫu trong một phương thức mixin?
- 21. Java: Làm thế nào để hạn chế quyền truy cập của một phương thức vào một lớp cụ thể?
- 22. Có thể ẩn hoặc giảm quyền truy cập vào Phương thức kế thừa trong Java không?
- 23. Với LINQ to Entities không hỗ trợ "Phương thức tùy chỉnh", làm thế nào để bạn giữ DRY?
- 24. Asp.net MVC Razor - Tùy chỉnh javascript bên trong nếu chặn
- 25. ASP.NET MVC - Cách nhận hành động hiện tại từ bên trong một góc nhìn?
- 26. ASP.NET MVC Authorize Attribute để khởi chạy một phương thức?
- 27. SQLAlchemy - bạn có thể thêm các phương thức tùy chỉnh vào đối tượng truy vấn không?
- 28. Làm thế nào để viết nội dung trợ giúp cho một tệp từ bên trong R?
- 29. Làm thế nào để có được quyền truy cập vào phản ứng SOAP
- 30. ASP.NET + Quyền truy cập vào đường dẫn bị từ chối
Vị trí bối cảnh sẽ phụ thuộc vào những gì phương pháp mở rộng sẽ được mở rộng. Điều này sẽ được sử dụng trong một cái nhìn, điều khiển hoặc ở nơi khác? –