Vì nhiều lý do, bạn nên đặt hầu hết, nếu không phải tất cả JS của bạn vào các tập tin JS riêng biệt (để bạn có thể tận dụng lợi thế của việc tái sử dụng, việc rút gọn, tối ưu hóa trình duyệt, mạng lưới phân phối nội dung, vv)
Để đọc kết quả của server-side đang dao cạo vào các tập tin JS của bạn sử dụng một trong các phương pháp sau:
1) Đặt mã dao cạo của bạn thành một biến javascript trong giao diện (mã không kiểm tra)
<script type="text/javascript">
if(!MyGlobalVariables){
MyGlobalVariables = {};
}
MyGlobalVariables.IndexUrl = "@Url.Action("Index")";
</script>
2) Sử dụng thuộc tính tùy chỉnh (ưu tiên tiền tố với dữ liệu như được đề xuất trong HTML 5 spec). Xem thảo luận liên quan ở đây: Can I add custom attribute to HTML tag?
<div data-index-url="@Url.Action("Index")"></div>
Sau đó, sử dụng $ (this) .attr ("data-index-url") trong jQuery để truy cập đánh dấu dao cạo render.
3) Đặt C# vào trường nhập ẩn trên chế độ xem của bạn và đọc đầu vào bị ẩn trong tệp JS của bạn.
<input id="indexUrl" type="hidden" value="@Url.Action("Index")" />
Để đọc này trong jQuery, bạn sẽ sử dụng $ ("# indexUrl"). Val()
Nguồn
2012-03-13 10:39:08
Tại sao bạn có một * 'C# aspect' * trong javascripts của bạn? Bạn không nên. –