在下划线.js模板中连接 @Url.内容 的字符串
Concatenate string for @Url.Content with in the Underscore.js template
我无法为 @Url.Content 方法准备字符串 url。
这是我来自下划线模板的代码块
<% var imgId = "~/Content/images/" +pocket.get('imageId'); %>
<div class="image1">
<% alert(imgId); %>
<img src= "@Url.Content("+<% imgId %>+")" alt="Assigned Details" />
我将通过口袋对象传递"imageId"。
我也尝试使用以下方法。获取 imgId 变量的编译错误
<img src= "<%= @Url.Content(string.Format("~/Content/Images/{0}", imgId)) %>" />
解决方案:最后我从另一个线程中找出了解决方案:从下划线模板调用 js 函数1.js功能
<script type="text/javascript">
var fullPath = '@HttpContext.Current.Request.Url.Scheme://@HttpContext.Current.Request.Url.Authority';
function GetPath(url) {
return fullPath + url;
}
- 从你的代码调用JS:
<img src= '<%= GetPath(imgId) %>' alt="Med Assigned" />
您可以使用<% ... %>
来评估下划线模板中的某些 JavaScript,但如果您希望输出最终出现在结果中,请使用<%= ... %>
; 来自精细手册:
模板函数既可以使用
<%= … %>
插入变量,也可以使用<% … %>
执行任意JavaScript代码。
您希望将imgId
值内插到结果中,因此您需要以下内容:
<img src= "@Url.Content("+<%= imgId %>+")" alt="Assigned Details" />
简化演示:http://jsfiddle.net/ambiguous/9gyKC/
据推测,@Url.Content
是在服务器上运行以生成给定资源的src
属性的东西。如果是这种情况,那么您将不得不重新考虑它是如何工作的;<%= ... %>
执行后@Url.Content
内容发生在浏览器中,因此当下划线模板运行时为时已晚。您关于imgId
错误的注释:
<img src= "<%= @Url.Content(string.Format("~/Content/Images/{0}", imgId)) %>" />
支持这一理论。你的服务器代码不知道imgId
是什么,只有客户端JavaScript知道。
相关文章:
- 使用纯Javascript加载外部URL内容
- 在下划线.js模板中连接 @Url.内容 的字符串
- 当页面需要启用JavaScript时,Python会获取URL内容
- 可以使用JavaScript/jQuery读取脚本标记src URL内容
- 如何让Phonegap InAppBrowser不缓存url内容
- 加载新的URL内容而不刷新
- Javascript:用另一个URL替换URL内容字符串
- 我如何在主窗口加载URL内容
- Javascript url内容与参数
- 如何使用ajax获取url内容
- 用javascript保存URL内容,并将其作为变量传递给PHP
- 如何使用Javascript获取web url内容
- 使用jQuery的youtube url必须放置在文本框url内容是加载在iframe
- 使用javascript检查url内容类型
- 根据url内容为变量指定一个特定的值
- 如何使用javascript获取googleapi URL内容
- 瞄准URL内容并在页面上显示
- Javascript代码检查URL内容,只保留一件事
- 如果PHP无法加载特定的URL内容,如何使用jquery创建cookie
- 使用 php 在 javascript 中读取 URL 内容