构建这样的代码时:
<script type="text/javascript" src="<%=ResolveUrl("~/js/js.js")%>"></script>
或
<input type="image" src="<%=ResolveUrl("~/img/submit.png")%>" />
我应该使用Url.Content
还是ResolveUrl()
?有什么区别?
答案 0 :(得分:30)
如果您在MVC应用程序中使用IIS URL重写,例如将http://yoursubdomain.example.com/MyController/MyAction内部视为http://hosted.example.com/yoursubdomain/MyController/MyAction,Url.Content()将生成正确的子域相对链接。在这种情况下,ResolveUrl()将生成错误的链接。
答案 1 :(得分:14)
Url.Content
更像MVCish,因为它是正常的。自ASP.NET开始以来,ResolveUrl已经存在。
答案 2 :(得分:12)
我更喜欢将站点根目录捕获到局部变量并重用它
<% var siteroot = Url.Content("~/") %>
<script type="text/javascript" src="<%: siteroot %>Script/jquery-1.4.1.js"></script>
<script type="text/javascript" src="<%: siteroot %>Script/jquery.validate.js"></script>
它应该节省几毫秒:)。