开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

再谈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,如需转载请自行联系原作者

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

相关文章
跟我一起学习ASP.NET 4.5 MVC4.0(六)
原文http://www.cnblogs.com/xdotnet/archive/2012/07/21/aspnet40_webpage20.html 这一系列文章跨度有点大,由于最近忙于其他事情,没有更新,今天重新安装了下Win8系 统,VS2012和SQLServer 2012,顺便抽空继续一篇。
928 0
跟我一起学习ASP.NET 4.5 MVC4.0(五)
原文http://www.cnblogs.com/xdotnet/archive/2012/03/29/aspnet_mvc4_html_control_checkboxlist.html 前面几篇文章介绍了一下ASP.NET MVC中的一些基础,今天我们一起来学习一下在ASP.NET MVC中控件的封装。
631 0
跟我一起学习ASP.NET 4.5 MVC4.0(四)
原文http://www.cnblogs.com/xdotnet/archive/2012/03/27/aspnet_mvc4_authorize.html 前几个文章中介绍了一些关于MVC4.0的东东,今天我们来看一下登陆验证,也可以说是 权限验证,即AuthorizeAttribute。
731 0
跟我一起学习ASP.NET 4.5 MVC4.0(三)
原文 http://www.cnblogs.com/xdotnet/archive/2012/03/07/aspnet_mvc40_validate.html 今天我们继续ASP.NET 4.5 MVC 4.0,前两天熟悉了MVC4.0在VS11和win8下的更新,以及MVC中的基础语法和几个关键字的使用。
777 0
跟我一起学习ASP.NET 4.5 MVC4.0(二)
原文http://www.cnblogs.com/xdotnet/archive/2012/03/06/aspnet_mvc40_keywords.html 上一篇文章中(跟我一起学习ASP.NET 4.5 MVC4.0(一)) 我们基础的了解了一下ASP.NET MVC4.0的一些比较简单的改变,主要是想对于MVC3.0来说的。
821 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载