tôi thích để kéo các URL từ 'của href hoặc hình thức' một thẻ hành động của - hoặc một số yếu tố khác có ý nghĩa.
<img class="_click" src="<%= Url.Content("~/my/image.png") %>" alt="Click" />
Và trong javascript của tôi (séc đôi này trên jQuery, tôi không chắc chắn nếu đó là cú pháp chính xác.):
var url = $('._click').attr('href');
// To pass these to your plugin as options
// see lightbox source for a full list
$('a').lightBox({ imageLoading : url })
Một tùy chọn khác một chút ít ưa thích là để thêm các thiết lập của bạn trên đầu trang của tệp của bạn:
<script type="text/javascript"><![CDATA[
$('a').lightBox({ imageLoading : <%= Url.Content("~/my/image.png") %> })
//]]></script>
Tôi đã nói 'ít được ưa thích hơn' vì cách tiếp cận này kết hợp đánh dấu và mã.
Tuy nhiên, cách tiếp cận khác (mà cần rất nhiều dọn dẹp) là để phục vụ quý khách js nộp từ một bộ điều khiển:
public ActionResult GetFileContent(string filename)
{
// important: make sure to control the path for security
var path = Server.MapPath("~/Scripts/" + filename);
var content = System.IO.File.ReadAllText(path);
// Use some kind of template convention
content = content.Replace("{{IMAGE_PATH}}", Url.Content(@"~/my/image.png"));
var bytes = new UTF8Encoding().GetBytes(content);
return new FileContentResult(bytes, "text/javascript");
}
Tnx! Điều đó đã giải quyết được vấn đề của tôi. –