2

我正在将 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>

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

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();"/>
4

2 回答 2

2

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

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

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

于 2012-10-18T09:00:14.850 回答
1

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

尝试用@Url.Content

<img src="@Url.Content("~/Content/icons/close.png")" />
于 2012-10-18T09:00:40.017 回答