<script src='@Href("~/Scripts/toastr/toastr.js")' type="text/javascript"> </script>
我也尝试过:
<script src='@Url.Content("~/Scripts/toastr/toastr.js")' type="text/javascript"></script>,
和
<script src='~/Scripts/toastr/toastr.js' type="text/javascript"></script>
除了URL类似于http://localhost/MyApp/index-hr
之外的情况,它会解析Url很棒。我的网址/index-hr
会被重写并映射到控制器Home
和操作HomeIndex
。我注意到它在URL为http://localhost/MyApp/Home
时解析正常,因此可能因为额外的斜杠(当应用程序托管在本地IIS上时)而没有问题,但是因为URL被重写了。其他带有重新加载网址的网页加载toast.js确定但是它们有更深层次的链接,但在这种情况下它会将toast.js
解析为此网址:http://localhost/Scripts/toastr/toastr.js
,这会导致404 ofcourse。它应解决为:http://localhost/MyApp/Scripts/toastr/toastr.js
答案 0 :(得分:0)
我不确定我是否找到了解决办法,或者只是解决了这个问题而且搞砸了其他事情,但正如建议here我写的这段代码是global.asax:
protected void Application_BeginRequest()
{
Context.Items["IIS_WasUrlRewritten"] = false;
}
这里说的是,在ASP.NET网页Razor V3中使用IIS URL重写,Tilde(〜)符号映射到原始URL。如果URL将来无法使用,请解释:
出现此问题是因为URL中波形符号的行为是 在Web页面Razor V3中更改了与ASP.NET MVC的一致性。在 ASP.NET MVC,Url.Content方法中的代字符表示法 Html.ActionLink方法生成原始URL,而不管它是什么 IIS URL重写规则。
但是,在网页Razor V2中,URL中的波形符号映射到 启用IIS URL重写模块时重写的URL。对于 例如,当content.asp.net下的请求被重写为 asp.net/content/下的URL,href属性 被解析为/ content / book /。在网页Razor V3中,相同的href 属性被翻译成/ book /,这是原始的URL 浏览器。
在razor v2中比在razor v3中更好?