【问题标题】:HTML code messing following URLsHTML 代码弄乱了以下 URL
【发布时间】:2012-10-18 08:56:48
【问题描述】:

我正在将 Visual Studio 2012 用于使用 EF 5.0 的代码优先方法的 MVC Web 应用程序。 我编写了以下代码来使模态窗口出现在某个点:

<div id="mod" style="display:none;">
    <div id="mod-container">  
        <div id="mod-close"><img src="~/Content/icons/close.png" title="close" onclick="$('#mod').fadeOut();"/></div>   
        <div id="mod-content"></div>
    </div>
</div>

如果工作正常,除了认为其 URL 为的浏览器无法找到图像 &lt;img src="~/Content/icons/close.png" [...] /&gt; 之外

http://localhost:49895/Class1/Home/~/Content/icons/close.png

准确地说,我的 div 下的每个代码都有损坏的 URL。如果我将我的图像放在 div 上方,它会通过以下 URL 正确显示:

http://localhost:49895/Content/icons/edit.png

你知道我把事情搞砸了吗?

Edit2:示例(问题解决后)

这行得通:

<img src="~/Content/icons/close.png" title="close" onclick="$('#mod').fadeOut();"/>
<!-- comment containing a quote ' -->
<div id="mod" style="display:none;">
    <div id="mod-container">  
        <div id="mod-close"></div>   
        <div id="mod-content"></div>
    </div>
</div>

这不起作用:

<!-- comment containing a quote ' -->
<div id="mod" style="display:none;">
    <div id="mod-container">  
        <div id="mod-close"></div>   
        <div id="mod-content"></div>
    </div>
</div>
<img src="~/Content/icons/close.png" title="close" onclick="$('#mod').fadeOut();"/>

【问题讨论】:

  • 你在使用 ajax 来调用你的 modal 吗?
  • @Arno2501 不,我不是,它实际上与它无关。模态是通过下面的另一个 js 脚本调用的,但删除它并没有改变任何东西
  • 您是复制/粘贴示例代码还是手动输入?
  • @Betty 我已经复制粘贴了我的示例代码,因为它们在我的文件中

标签: html asp.net-mvc razor-2


【解决方案1】:

可能是新的 Razor 2.0 波浪号解析中的错误,或者您因缺少引号或其他内容而弄乱了您的 html。尝试使用更明确的方式来解析 url

<img src="@Url.Content("~/Content/icons/close.png")" />

如果可行,则表明存在剃刀错误,如果不可行,则您的 html 可能以某种方式损坏,但额外的 @ 符号可能足以让解析器启动并告诉您出了什么问题。

【讨论】:

  • 编辑了你的答案:我有一条评论说解析器似乎不喜欢
  • 您可以将评论添加到您的示例中以供人们将来参考吗?
  • 由于某种原因完成了我对您答案的编辑已经消失,所以这是一个解析错误,但使用 @Url.Content 是最好的方法
  • 您的分数可能不够高,无法在未经审核的情况下编辑其他答案。
【解决方案2】:

~ 是一个 asp 代码元素,而不是 HTML。因此,它不会被 HTML 呈现。

尝试用@Url.Content包装你的src

<img src="@Url.Content("~/Content/icons/close.png")" />

【讨论】:

  • 这其实是 Razor 2.0 的新特性 - davidhayden.me/blog/…
  • @Betty 有趣,谢谢。您的回答可能是正确的,但我们确定 OP 使用的是 Razor 2 吗?
  • 使用VS2012,所以几率很高。毫无疑问,还考虑到有问题的 div 之前的波浪号替换工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
  • 2015-02-27
  • 1970-01-01
相关资源
最近更新 更多