我设法让以下内容正确执行,这意味着我已正确设置了renering等。我确实看到了警报窗口。
@{ Layout = "~/Views/Shared/_Default.cshtml"; }
<h1>Eye candies</h1>
@section Footie
{
<script type="text/javascript">
alert("Ola!");
</script>
}
然而,当我改变它以执行不同的脚本,显示一个访客的酷球时,我什么也看不见,nada,ziltch!没有错误,没有任何错误。只是空白页面。
当我将URL粘贴到浏览器中时,我得到了一个JS源代码,所以我假设这个部分有效。但我没有想法如何进一步调查它。
@section Footie
{
<script src="@Url.Content("//ra.revolvermaps.com/0/0/5.js?i=0w5jyvctga6&m=0&s=180&c=ff0000&cr1=ffffff")"
async="async"
type="text/javascript"></script>
}
我添加了一个静态HTML页面并粘贴在那里的脚本中。奇迹般有效!所以它肯定与MVC(或可能的Razor语法)视图下的脚本执行有关。
建议?
答案 0 :(得分:1)
查看您传递给Url.Content
方法的网址
@Url.Content("//ra.revolvermaps.com/0/0/5.js?i=0w5jyvctga6&m=0&s=180
&c=ff0000&cr1=ffffff")
在网址中,&
已经编码为&
Url.Content方法将再次对&
进行编码,您将获得结果
"//ra.revolvermaps.com/0/0/5.js?i=0w5jyvctga6&amp;m=0&amp;s=180&amp;
c=ff0000&amp;cr1=ffffff"
现在你有&amp;
:)
解决方案是不使用Url.Content()
方法
<script type="text/javascript" src="//ra.revolvermaps.com/0/0/5.js?i=0w5jyvctga6&
m=0&s=180&c=ff0000&cr1=ffffff" async="async"></script>
或者不对传递给Url.Content()
方法的网址进行编码,让方法对其进行编码。
<script type="text/javascript" src="@Url.Content("//ra.revolvermaps.com/0/0/5.js
?i=0w5jyvctga6&m=0&s=180&c=ff0000&cr1=ffffff")" async="async"></script>