Tôi hỏi một câu hỏi tương tự here và Darin Dimitrov
trả lời rằng chúng tôi không thể sử dụng trình trợ giúp url như $.ajax({ url: '@Url.Action("Index")', . . .
trong tệp js riêng biệt. đề nghị sử dụng trợ giúp Url trong trang xem và chuyển nó vào javascript, tôi không muốn sử dụng url mã cứng, tôi cần phải tìm nó với trợ giúp url.Sử dụng tập tin Seprate js Và sử dụng Url Helpers trong nó với ASP.NEt MVC 3 và Razor View Engine
Trả lời
Sử dụng một lĩnh vực tiềm ẩn để lưu trữ của bạn url, sau đó sử dụng javascript để đọc trường ẩn, sau đó sử dụng nó trong mã của bạn. Bằng cách đó bạn có thể giữ tệp JS riêng biệt với chế độ xem. Một cái gì đó như thế này:
//In Your View
@Html.Hidden("MyURL", Url.Action("Index"))
//In Your JS
var myUrl = $("#MyURL").val();
$.ajax({ url: myUrl , . . .
Cách đơn giản nhất chỉ là để tạo ra một biến toàn cầu được gọi là một cái gì đó và chỉ cần tham khảo để nó ở bên ngoài JS
var baseURL = '@Url.Action("Index")';
của bạn Bên trong JS bên ngoài của bạn
$.ajax({ url: baseURL + "Action"
thực hành tốt nhất là không gian tên biến toàn cục của bạn '' ' nếu { window.myProject = {} (window.myProject!); } myProject.baseURL = '@ Url.Action ("Index")'; '' ' – Josiah
Bạn có thể sử dụng RazorJS cho mục đích đó. Nó cho phép viết Razor-Style C# hoặc VB.NET bên trong các tệp JavaScript của bạn. Có một mô tả ngắn có sẵn here.
URL mô tả được cung cấp không hợp lệ ngay bây giờ. Bạn có thể kiểm tra điều đó không? Vui lòng cập nhật URL nếu bạn biết. Tôi cũng cần điều đó. Cảm ơn trước. –
Hãy xem Generating External JavaScript Files Using Partial Razor Views. Trong bài đăng trên blog này, tôi mô tả cách bạn có thể sử dụng chế độ xem Razor thông thường và bộ lọc hành động tùy chỉnh để hiển thị các tệp JavaScript bên ngoài có thể có mã Razor trong chúng.
Không cần phải có trường ẩn, thậm chí điều này cũng hoạt động trong tệp .js bên ngoài.
var myUrl =/ControllerName/ActionName;
$.ajax({ url: myUrl , . .
Tôi đã sử dụng cách tiếp cận tương tự với raklos, nhưng đang tìm cách lấy đường dẫn thư mục gốc ở tất cả các địa điểm, vì vậy tôi đã đi với mã bên dưới.
@Html.Hidden("AppUrl", Url.Content("~"))
- 1. Razor View Engine và jQuery
- 2. ASP.NET MVC 3 Razor View Restrictions
- 3. Làm thế nào để hiện và ẩn Div bằng C# trong MVC 3 Razor View Engine?
- 4. Sử dụng Razor không MVC
- 5. Sự khác biệt giữa trang MVC 3 Partial Page (Razor) và MVC 3 View với Layout (Razor)?
- 6. sử dụng SquishIt trong ASP.NET MVC 3
- 7. Sử dụng Microsoft.VisualBasic.Logging.FileLogTraceListener với ASP.NET MVC 3
- 8. ASP.NET MVC 3, Razor Views, và Portable Portable
- 9. Làm cách nào để xác định các thông tin trong MVC 3 Razor View Engine trên toàn bộ trang web?
- 10. ASP.NET MVC View Engine Resolution Sequence
- 11. Sử dụng câu lệnh If in a MVC Razor View
- 12. Lỗi máy chủ trong ứng dụng '/' trong ASP.NET MVC 3 với công cụ Razor
- 13. ASP.NET MVC 3 bằng cách sử dụng xác thực
- 14. Spark-View-Engine với ASP.NET MVC2
- 15. ASP.NET MVC 3 Bảng hiển thị bảng có thể sử dụng lại với Razor
- 16. Sử dụng Spark View Engine trong ứng dụng độc lập
- 17. Javascript Intellisense trong các trang con của Razor View Engine
- 18. MVC 3 Razor - Sử dụng tham chiếu tập lệnh trong trang Layout từ một phần Xem
- 19. ASP.NET MVC Razor, Html.BeginForm, sử dụng câu lệnh
- 20. Làm thế nào để render một Razor View thành một chuỗi trong ASP.NET MVC 3?
- 21. Làm cách nào để hiển thị tập lệnh trong phần đầu sử dụng ASP.NET MVC Razor
- 22. ASP.net MVC 3 tuyến đường cho các tập tin jpg
- 23. Vấn đề với đầu vào bị ẩn và các giá trị rất lớn trong HTML và ASP.NET MVC 3 Razor
- 24. Làm thế nào để sử dụng Razor View Engine trong một ứng dụng giao diện điều khiển?
- 25. Nhược điểm của ASP.net MVC Webforms View Engine?
- 26. Truy cập ứng dụng chính Helpers khi overridings một Rails Engine View/Layout
- 27. Sử dụng NServiceBus với Asp.Net MVC 2
- 28. Sử dụng điều khiển người dùng ASP.NET ASCX cũ trong chế độ xem MVC Razor
- 29. Sử dụng Jquery và Ajax để lưu một tập tin trong ASP.Net
- 30. ASP.NET MVC 3 và NHibernate Giàn giáo
Đề xuất tuyệt vời !! –
Bạn có cho rằng điều này có thể mở lỗ hổng bảo mật trong ứng dụng không? Một hacker có thể thay thế URL mục tiêu trên máy chủ bằng cách thay đổi giá trị của các trường ẩn! – Mosh
@Mosh Mọi thứ trong trang web đều có thể được sửa đổi bởi một hacker, bao gồm cả các tệp JavaScript trước khi chúng chạy. Bạn không thể dừng điều này (ngay cả với mã hóa). Thời gian duy nhất đây sẽ là một vấn đề là nếu một hacker có thể sửa đổi giá trị của những trường ẩn đó cho những người khác_. – Pluto