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

相关文章
|
7月前
|
开发框架 前端开发 JavaScript
盘点72个ASP.NET Core源码Net爱好者不容错过
盘点72个ASP.NET Core源码Net爱好者不容错过
174 0
|
7月前
|
开发框架 .NET
ASP.NET Core NET7 增加session的方法
ASP.NET Core NET7 增加session的方法
96 0
|
存储 开发框架 前端开发
asp.net与asp.net优缺点及示例
asp.net与asp.net优缺点及示例
112 0
|
4月前
|
开发框架 JSON .NET
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
|
4月前
|
开发框架 .NET 数据库连接
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
|
7月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
|
7月前
|
SQL 开发框架 JavaScript
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
97 0
|
7月前
|
存储 开发框架 .NET
Asp.net就业课之Ado.net第一次课
Asp.net就业课之Ado.net第一次课
48 0
|
存储 开发框架 .NET
ASP.NET学生管理系统(.NET毕业设计)
ASP.NET学生管理系统(.NET毕业设计)
188 0
|
开发框架 前端开发 JavaScript
ASP .Net Core 中间件的使用(一):搭建静态文件服务器/访问指定文件
ASP .Net Core 中间件的使用(一):搭建静态文件服务器/访问指定文件