再谈Asp.net里的路径-阿里云开发者社区

开发者社区> 开发与运维> 正文

再谈Asp.net里的路径

简介:

上一篇中提到的~/可以用在服务端控件和服务端代码中使用。

那么还需要注意什么呢,我们比较下图片控件和使用html中的<img />路径的区别吧:

首先。

修改Default.master母板如下:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Default.master.cs" Inherits="MyWebservice.Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
    <script type="text/javascript" src="<%=ResolveClientUrl("../js/jquery.js") %>"></script>
    <script type="text/javascript">
    $(document).ready(function(){
        alert("jQuery.")
    });
    </script>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Image ID="Image1" runat="server" ImageUrl="~/images/qq.jpg" />
        <img src="<%=ResolveUrl("~/images/qq.jpg") %>" />
        
        <!-- 下面使用相对路径 -->
        <asp:Image ID="Image2" runat="server" ImageUrl="../images/qq.jpg" />   
        <img src="images/qq.jpg" /> 

    <div>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
        
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>
 

然后通过浏览index.aspx和oa/oa.aspx可以体验下.

对比

        <asp:Image ID="Image2" runat="server" ImageUrl="../images/qq.jpg" />   
        <img src="images/qq.jpg" />

可以知道服务器控件是相对于母板的,img是相对页面的。

可以添加runat="server"转换服务器控件。

        <img src="../images/qq.jpg" runat="Server" />  
        <img src="images/qq.jpg" />

对比下。

 

2.接下来的工作,我们添加主题

项目添加文件夹-主题,名字MyTheme。

好了里面我就放一个Default.css里面只写一句话,测试嘛。

img{border:2px solid #333;}

然后index.aspx和oa.aspx引入主题Theme="MyTheme"然后,执行看看会出错:

“/”应用程序中的服务器错误。

控件包含代码块(即 <% ... %>),因此无法修改控件集合。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Web.HttpException: 控件包含代码块(即 <% ... %>),因此无法修改控件集合。

源错误: 

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。


当然了,不用<%=ResolveClientUrl("../js/jquery.js") %>就不会报错了,但是这个路径问题怎么解决呢,当然程序不使用主题也没问题,可要是既要用主题,又无法回避js引用问题呢。

网上现在的用法是把js这块拿出head区,放在body里。实际是可行的。





 本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/344259,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章