Tôi có một phương pháp mở rộng html để truy xuất URL cho tệp nằm trong cùng thư mục với chế độ xem.MVC3: Cách tốt nhất để có được đường dẫn xem từ đối tượng HtmlHelper là gì?
Ví dụ
/Views/Home/Index.cshtml
/Views/Home/Index.js
/Views/Home/Index.css
Đây có phải là cách tốt nhất để làm điều này? Tôi không thích vì tôi phải làm diễn viên sau đây. Tôi chắc chắn rằng RazorView sẽ không hoạt động nếu bạn đang sử dụng một công cụ xem khác nhau, nhưng IView chỉ có một phương pháp Render trên đó.
((RazorView)helper.ViewContext.View).ViewPath
Dưới đây là toàn bộ phương pháp
public static string GetUrl(this System.Web.Mvc.HtmlHelper helper, string fileName) {
string virtualPath = ((RazorView) helper.ViewContext.View).ViewPath;
virtualPath = virtualPath.Substring(0, virtualPath.LastIndexOf("/") + 1);
return virtualPath + fileName;
}
gì được bạn cuối cùng sẽ làm gì với URL? Chèn nó vào một số HTML và gửi nó vào trình duyệt? Nếu có, điều này sẽ không hoạt động vì thư mục con Chế độ xem được bảo vệ và không thể truy cập qua URL. – Codo
Tôi đã thực hiện các tệp này có thể truy cập qua web.config bằng cách xóa BlockViewHandler khỏi danh sách các trình xử lý. –
Bạn có chắc đây là một việc tốt để làm không? Bạn không phiền nếu mọi người tải xuống tệp .cshtml của bạn để kiểm tra chúng vì lỗi bảo mật? – Codo